Register-WmiEvent
Prenumererar på en WMI-händelse (Windows Management Instrumentation).
Syntax
Register-WmiEvent
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Class] <String>
[-Timeout <Int64>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Register-WmiEvent
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Query] <String>
[-Timeout <Int64>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Description
Cmdleten Register-WmiEvent
prenumererar på WMI-händelser (Windows Management Instrumentation) på den lokala datorn eller på en fjärrdator.
När den prenumerationsprenumererade WMI-händelsen aktiveras läggs den till i händelsekön i den lokala sessionen även om händelsen inträffar på en fjärrdator. Om du vill hämta händelser i händelsekön använder du cmdleten Get-Event
.
Du kan använda parametrarna Register-WmiEvent
för att prenumerera på händelser på fjärrdatorer och ange egenskapsvärdena för de händelser som kan hjälpa dig att identifiera händelsen i kön. Du kan också använda parametern Åtgärd för att ange åtgärder som ska vidtas när en prenumerationshändelse aktiveras.
När du prenumererar på en händelse läggs en händelseprenumerant till i sessionen. Om du vill hämta händelseprenumeranterna i sessionen använder du cmdleten Get-EventSubscriber
. Om du vill avbryta prenumerationen använder du cmdleten Unregister-Event
, som tar bort händelseprenumeranten från sessionen.
Nya CIM-cmdletar (Common Information Model), introducerade Windows PowerShell 3.0, utför samma uppgifter som WMI-cmdletarna. CIM-cmdletarna följer WS-Management-standarderna (WSMan) och CIM-standarden, vilket gör att cmdletarna kan använda samma tekniker för att hantera datorer som kör Windows-operativsystemet och de som kör andra operativsystem. I stället för att använda Register-WmiEvent
bör du överväga att använda cmdleten Register-CimIndicationEvent .
Exempel
Exempel 1: Prenumerera på händelser som genereras av en klass
Det här kommandot prenumererar på de händelser som genereras av klassen Win32_ProcessStartTrace . Den här klassen genererar en händelse när en process startar.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
Exempel 2: Prenumerera på skapandehändelser för en process
Det här kommandot använder en fråga för att prenumerera på händelser för att skapa Win32_process instans.
$wmiParameters = @{
Query = "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'"
SourceIdentifier = "WMIProcess"
MessageData = "Test 01"
TimeOut = 500
}
Register-WmiEvent @wmiParameters
Exempel 3: Använd en åtgärd för att svara på en händelse
Det här exemplet visar hur du använder en åtgärd för att svara på en händelse. I det här fallet skrivs alla Start-Process
kommandon i den aktuella sessionen till en XML-fil när en process startas.
$action = { Get-History | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -Action $action
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 ProcessStarted NotStarted False get-history | where {...
När du använder parametern Register-WmiEvent
Åtgärd returnerar ett bakgrundsjobb som representerar händelseåtgärden. Du kan använda jobb-cmdletar , till exempel Get-Job
och Receive-Job
, för att hantera händelsejobbet.
Mer information finns i artikeln om jobb.
Exempel 4: Registrera dig för händelser på en fjärrdator
Det här exemplet registreras för händelser på server01-fjärrdatorn.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
Get-Event -SourceIdentifier "Start"
WMI returnerar händelserna till den lokala datorn och lagrar dem i händelsekön i den aktuella sessionen. Om du vill hämta händelserna kör du ett lokalt Get-Event
kommando.
Parametrar
-Action
Anger kommandon som hanterar händelserna. Kommandona i parametern Åtgärd körs när en händelse aktiveras i stället för att skicka händelsen till händelsekön. Omslut kommandona i klammerparenteser ({}
) för att skapa ett skriptblock.
Värdet för Åtgärd kan innehålla variablerna $Event
, $EventSubscriber
, $Sender
, $EventArgs
och $Args
automatisk, som ger information om händelsen till åtgärdsskriptblocket. Mer information finns i about_Automatic_Variables.
När du anger en åtgärd Register-WmiEvent
returnerar ett händelsejobbobjekt som representerar den åtgärden. Du kan använda de cmdletar som innehåller jobbets substantiv ( jobb-cmdletarna ) för att hantera händelsejobbet.
Type: | ScriptBlock |
Position: | 101 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Class
Anger den händelse som du prenumererar på. Ange den WMI-klass som genererar händelserna. En klass- eller frågeparameter krävs i varje kommando.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Anger namnet på den dator där kommandot körs. Standard är den lokala datorn.
Ange NetBIOS-namnet, en IP-adress eller ett fullständigt domännamn på datorn. Om du vill ange den lokala datorn skriver du datornamnet, en punkt (.
) eller localhost.
Den här parametern förlitar sig inte på Windows PowerShell-fjärrkommunikation. Du kan använda parametern ComputerName även om datorn inte är konfigurerad för att köra fjärrkommandon.
Type: | String |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Anger ett användarkonto som har behörighet att utföra den här åtgärden. Standard är den aktuella användaren.
Ange ett användarnamn, till exempel User01 eller Domain01\User01, eller ange ett PSCredential-objekt , till exempel ett som genereras av cmdleten Get-Credential
. Om du skriver ett användarnamn uppmanas du att ange ett lösenord i den här cmdleten.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Forward
Anger att den här cmdleten skickar händelser för den här prenumerationen till sessionen på den lokala datorn. Använd den här parametern när du registrerar dig för händelser på en fjärrdator eller i en fjärrsession.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaxTriggerCount
Anger det maximala antalet utlösare.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MessageData
Anger eventuella ytterligare data som ska associeras med den här händelseprenumerationen. Värdet för den här parametern visas i egenskapen MessageData för alla händelser som är associerade med den här prenumerationen.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Namespace
Anger namnområdet för WMI-klassen.
Type: | String |
Aliases: | NS |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Query
Anger en fråga i WMI Query Language (WQL) som identifierar WMI-händelseklassen, till exempel: select * from __InstanceDeletionEvent
.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SourceIdentifier
Anger ett namn som du väljer för prenumerationen. Namnet som du väljer måste vara unikt i den aktuella sessionen. Standardvärdet är det GUID som Windows PowerShell tilldelar.
Värdet för den här parametern visas i värdet för egenskapen SourceIdentifier för prenumerantobjektet och för alla händelseobjekt som är associerade med den här prenumerationen.
Type: | String |
Position: | 100 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SupportEvent
Anger att den här cmdleten döljer händelseprenumerationen. Använd den här parametern när den aktuella prenumerationen ingår i en mer komplex mekanism för händelseregistrering och den inte bör identifieras oberoende av varandra.
Om du vill visa eller avbryta en prenumeration som skapades med hjälp av parametern SupportEvent anger duforce-parametern Get-EventSubscriber
för cmdletarna och Unregister-Event
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Timeout
Anger hur länge Windows PowerShell väntar på att det här kommandot ska slutföras.
Standardvärdet 0 (noll) innebär att det inte finns någon tidsgräns och att Windows PowerShell väntar på obestämd tid.
Type: | Int64 |
Aliases: | TimeoutMSec |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
None
Du kan inte skicka objekt till den här cmdleten.
Utdata
None
Den här cmdleten genererar inga utdata.
Kommentarer
Om du vill använda den här cmdleten i Windows Vista eller en senare version av Windows-operativsystemet startar du Windows PowerShell med alternativet Kör som administratör.
Händelser, händelseprenumerationer och händelsekön finns bara i den aktuella sessionen. Om du stänger den aktuella sessionen ignoreras händelsekön och händelseprenumerationen avbryts.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för