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 prenumererande WMI-händelsen aktiveras läggs den till i händelsekön i din lokala session ä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 för att prenumerera på händelser på fjärrdatorer och för att ange egenskapsvärden för de händelser som kan hjälpa dig att identifiera händelsen i kön. Du kan också använda åtgärdsparametern för att ange åtgärder som ska vidtas när en prenumerationshändelse utlöses.
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), som introducerades Windows PowerShell 3.0, utför samma uppgifter som WMI-cmdletarna. CIM-cmdletarna följer WS-Management-standarder (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-WmiEventbö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å Win32_process instansskapandehändelser.
$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 startar.
$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. Kör ett lokalt Get-Event kommando för att hämta händelserna.
Parametrar
Anger kommandon som hanterar händelserna. Kommandona i parametern Action körs när en händelse aktiveras i stället för att skicka händelsen till händelsekön. Omslut kommandona inom klammerparenteser ({}) för att skapa ett skriptblock.
Värdet för Åtgärd kan innehålla variablerna $Event, $EventSubscriber, $Sender, $EventArgsoch $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ändelsejobbsobjekt som representerar den åtgärden. Du kan använda de cmdletar som innehåller jobbets substantiv (jobb-cmdletar) för att hantera händelsejobbet.
| Type: | ScriptBlock |
| Position: | 101 |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger att denna cmdlet 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 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger det maximala antalet utlösare.
| Type: | Int32 |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger namnområdet för WMI-klassen.
| Type: | String |
| Aliases: | NS |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger att denna cmdlet 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 har skapats med hjälp av parametern SupportEvent anger du force-parametern Get-EventSubscriber för cmdletarna och Unregister-Event .
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger hur länge Windows PowerShell väntar på att kommandot ska slutföras.
Standardvärdet 0 (noll) innebär att tidsgränsen inte överskrids och att Windows PowerShell väntar på obestämd tid.
| Type: | Int64 |
| Aliases: | TimeoutMSec |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Indata
None
Du kan inte skicka objekt till den här cmdleten.
Utdata
None
Denna cmdlet genererar inga utdata.
Kommentarer
Om du vill använda denna cmdlet i Windows Vista eller en senare version av Windows-operativsystemet börjar 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
Skicka och visa feedback för