Register-WmiEvent
Abonneren op een WMI-gebeurtenis (Windows Management Instrumentation).
Syntax
class (Standaard)
Register-WmiEvent
[-Class] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
query
Register-WmiEvent
[-Query] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-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 cmdlet Get-Event om gebeurtenissen in de gebeurteniswachtrij op te halen.
U kunt de parameters van Register-WmiEvent gebruiken om 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 cmdlet Get-EventSubscriber om de abonnees van het evenement in de sessie te verkrijgen. Als u het abonnement wilt annuleren, gebruikt u de Unregister-Event cmdlet, waarmee de abonnee van de gebeurtenis 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 WS-Management (WSMan)-standaarden 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
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 alle Start-Process opdrachten in de huidige sessie naar een XML-bestand geschreven wanneer een proces wordt gestart.
$action = {
Get-History |
Where-Object { $_.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 Action gebruikt, retourneert Register-WmiEvent een achtergrondtaak die de gebeurtenisactie vertegenwoordigt. U kunt de cmdlets Taak, zoals Get-Job en Receive-Job, gebruiken om de gebeurtenistaak te beheren.
Zie about_Jobsvoor 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 Get-Event opdracht uit om de gebeurtenissen op te halen.
Parameters
-Action
Hiermee geeft u opdrachten die de gebeurtenissen verwerken. De opdrachten in de Action parameter 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, $EventSubscriber, $Sender, $EventArgsen automatische variabelen $args, die informatie geven over de gebeurtenis aan het scriptblok Action. Voor meer informatie, zie about_Automatic_Variables.
Wanneer u een actie opgeeft, retourneert Register-WmiEvent een gebeurtenistaakobject dat die actie vertegenwoordigt. U kunt de cmdlets met het Taak- zelfstandig naamwoord (de taak--cmdlets) gebruiken om de gebeurtenistaak te beheren.
Parametereigenschappen
| Type: | ScriptBlock |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | 101 |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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 Class of Query parameter vereist.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
class
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-ComputerName
Hiermee geeft u de naam van de computer waarop de opdracht wordt uitgevoerd. De standaardwaarde is 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 gebruiken, zelfs als uw computer niet is geconfigureerd voor het uitvoeren van externe opdrachten.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | Cn |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Credential
Hiermee geeft u een gebruikersaccount op dat gemachtigd is om deze actie uit te voeren. De standaardwaarde is 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.
Parametereigenschappen
| Type: | PSCredential |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-MaxTriggerCount
Hiermee geeft u het maximum aantal triggers.
Parametereigenschappen
| Type: | Int32 |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | PSObject |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Namespace
Hiermee geeft u de naamruimte van de WMI-klasse.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | NS |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Query
Hiermee geeft u een query in WMI Query Language (WQL) die de WMI-gebeurtenisklasse identificeert, zoals: select * from __InstanceDeletionEvent.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
query
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | 100 |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | Int64 |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | Time-outMSec |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
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.