Register-WmiEvent
Abonneren op een WMI-gebeurtenis (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
De Register-WmiEvent
cmdlet abonneert zich op WMI-gebeurtenissen (Windows Management Instrumentation) op de lokale computer of op een externe computer.
Wanneer de geabonneerde WMI-gebeurtenis wordt gegenereerd, wordt deze toegevoegd aan de gebeurteniswachtrij in uw lokale sessie, zelfs als de gebeurtenis op een externe computer plaatsvindt. Gebruik de Get-Event
cmdlet om gebeurtenissen in de gebeurteniswachtrij op te halen.
U kunt de parameters gebruiken om Register-WmiEvent
u te abonneren op gebeurtenissen op externe computers en om de eigenschapswaarden op te geven van de gebeurtenissen waarmee u de gebeurtenis in de wachtrij kunt identificeren. U kunt ook de parameter Actie gebruiken om acties op te geven die moeten worden uitgevoerd wanneer een geabonneerde gebeurtenis wordt gegenereerd.
Wanneer u zich abonneert op een gebeurtenis, wordt er een gebeurtenisabonnee toegevoegd aan uw sessie. Gebruik de Get-EventSubscriber
cmdlet om de gebeurtenisabonnees in de sessie op te halen. Als u het abonnement wilt annuleren, gebruikt u de Unregister-Event
cmdlet, waarmee de gebeurtenisabonnee uit de sessie wordt verwijderd.
Nieuwe CIM-cmdlets (Common Information Model), geïntroduceerd Windows PowerShell 3.0, voeren dezelfde taken uit als de WMI-cmdlets. De CIM-cmdlets voldoen aan de WS-Management-standaarden (WSMan) en aan de CIM-standaard, waarmee de cmdlets dezelfde technieken kunnen gebruiken voor het beheren van computers waarop het Windows-besturingssysteem wordt uitgevoerd en computers waarop andere besturingssystemen worden uitgevoerd. In plaats van te gebruiken Register-WmiEvent
, kunt u overwegen de cmdlet Register-CimIndicationEvent te gebruiken.
Voorbeelden
Voorbeeld 1: Abonneren op gebeurtenissen die zijn gegenereerd door een klasse
Met deze opdracht abonneert u zich op de gebeurtenissen die zijn gegenereerd door de Win32_ProcessStartTrace-klasse . Deze klasse genereert een gebeurtenis wanneer een proces wordt gestart.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
Voorbeeld 2: Abonneren op aanmaakevenementen voor een proces
Met deze opdracht wordt een query gebruikt om u te abonneren op Win32_process gebeurtenissen voor het maken van exemplaren.
$wmiParameters = @{
Query = "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'"
SourceIdentifier = "WMIProcess"
MessageData = "Test 01"
TimeOut = 500
}
Register-WmiEvent @wmiParameters
Voorbeeld 3: Een actie gebruiken om te reageren op een gebeurtenis
In dit voorbeeld ziet u hoe u een actie gebruikt om te reageren op een gebeurtenis. In dit geval worden opdrachten in de huidige sessie naar een XML-bestand geschreven wanneer een proces wordt gestart Start-Process
.
$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 {...
Wanneer u de parameter Actie gebruikt, Register-WmiEvent
wordt een achtergrondtaak geretourneerd die de gebeurtenisactie vertegenwoordigt. U kunt de taak-cmdlets , zoals Get-Job
en Receive-Job
, gebruiken om de gebeurtenistaak te beheren.
Zie About Jobs (Taken) voor meer informatie.
Voorbeeld 4: Registreren voor gebeurtenissen op een externe computer
In dit voorbeeld worden gebeurtenissen geregistreerd op de externe Server01-computer.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
Get-Event -SourceIdentifier "Start"
WMI retourneert de gebeurtenissen naar de lokale computer en slaat deze op in de gebeurteniswachtrij in de huidige sessie. Voer een lokale opdracht uit om de gebeurtenissen op Get-Event
te halen.
Parameters
-Action
Hiermee geeft u opdrachten die de gebeurtenissen verwerken. De opdrachten in de actieparameter worden uitgevoerd wanneer een gebeurtenis wordt gegenereerd in plaats van de gebeurtenis naar de gebeurteniswachtrij te verzenden. Plaats de opdrachten tussen accolades ({}
) om een scriptblok te maken.
De waarde van Action kan de $Event
variabelen , $EventSubscriber
, $Sender
en $EventArgs
$Args
automatische variabelen bevatten, die informatie geven over de gebeurtenis aan het scriptblok Actie. Zie about_Automatic_Variables voor meer informatie.
Wanneer u een actie opgeeft, Register-WmiEvent
wordt een gebeurtenistaakobject geretourneerd dat die actie vertegenwoordigt. U kunt de cmdlets gebruiken die het taaknaamwoord (de taak-cmdlets ) bevatten om de gebeurtenistaak te beheren.
Type: | ScriptBlock |
Position: | 101 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Class
Hiermee geeft u de gebeurtenis op waarop u zich abonneert. Voer de WMI-klasse in waarmee de gebeurtenissen worden gegenereerd. Voor elke opdracht is een klasse - of queryparameter vereist.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Hiermee geeft u de naam van de computer waarop de opdracht wordt uitgevoerd. Standaard is dit de lokale computer.
Typ de NetBIOS-naam, een IP-adres of een volledig gekwalificeerde domeinnaam van de computer. Als u de lokale computer wilt opgeven, typt u de computernaam, een punt (.
) of localhost.
Deze parameter is niet afhankelijk van externe communicatie met Windows PowerShell. U kunt de parameter ComputerName zelfs gebruiken als uw computer niet is geconfigureerd voor het uitvoeren van externe opdrachten.
Type: | String |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Hiermee geeft u een gebruikersaccount op dat gemachtigd is om deze actie uit te voeren. Standaard is dit de huidige gebruiker.
Typ een gebruikersnaam, zoals User01 of Domain01\User01, of voer een PSCredential-object in, zoals een object dat is gegenereerd door de Get-Credential
cmdlet. Als u een gebruikersnaam typt, wordt u door deze cmdlet gevraagd om een wachtwoord.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Forward
Geeft aan dat met deze cmdlet gebeurtenissen voor dit abonnement worden verzonden naar de sessie op de lokale computer. Gebruik deze parameter wanneer u zich registreert voor gebeurtenissen op een externe computer of in een externe sessie.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaxTriggerCount
Hiermee geeft u het maximum aantal triggers.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MessageData
Hiermee geeft u eventuele aanvullende gegevens op die aan dit gebeurtenisabonnement moeten worden gekoppeld. De waarde van deze parameter wordt weergegeven in de eigenschap MessageData van alle gebeurtenissen die aan dit abonnement zijn gekoppeld.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Namespace
Hiermee geeft u de naamruimte van de WMI-klasse.
Type: | String |
Aliases: | NS |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Query
Hiermee geeft u een query in WMI Query Language (WQL) die de WMI-gebeurtenisklasse identificeert, zoals: select * from __InstanceDeletionEvent
.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SourceIdentifier
Hiermee geeft u een naam op die u selecteert voor het abonnement. De naam die u selecteert, moet uniek zijn in de huidige sessie. De standaardwaarde is de GUID die door Windows PowerShell wordt toegewezen.
De waarde van deze parameter wordt weergegeven in de waarde van de eigenschap SourceIdentifier van het abonneeobject en van alle gebeurtenisobjecten die aan dit abonnement zijn gekoppeld.
Type: | String |
Position: | 100 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SupportEvent
Geeft aan dat met deze cmdlet het gebeurtenisabonnement wordt verborgen. Gebruik deze parameter wanneer het huidige abonnement deel uitmaakt van een complexer mechanisme voor gebeurtenisregistratie en deze niet onafhankelijk mag worden gedetecteerd.
Als u een abonnement wilt weergeven of annuleren dat is gemaakt met behulp van de parameter SupportEvent , geeft u de parameter Force van de Get-EventSubscriber
en Unregister-Event
cmdlets op.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Timeout
Hiermee geeft u op hoe lang Windows PowerShell wacht totdat deze opdracht is voltooid.
De standaardwaarde, 0 (nul), betekent dat er geen time-out is en dat Windows PowerShell voor onbepaalde tijd moet wachten.
Type: | Int64 |
Aliases: | TimeoutMSec |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
None
U kunt geen objecten doorsluisen naar deze cmdlet.
Uitvoerwaarden
None
Met deze cmdlet wordt geen uitvoer gegenereerd.
Notities
Als u deze cmdlet wilt gebruiken in Windows Vista of een latere versie van het Windows-besturingssysteem, start u Windows PowerShell met behulp van de optie Als administrator uitvoeren.
Gebeurtenissen, gebeurtenisabonnementen en de gebeurteniswachtrij bestaan alleen in de huidige sessie. Als u de huidige sessie sluit, wordt de gebeurteniswachtrij verwijderd en wordt het gebeurtenisabonnement geannuleerd.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor