Register-EngineEvent
Abonneren op gebeurtenissen die worden gegenereerd door de Windows PowerShell-engine en door de New-Event-cmdlet.
Syntax
Default (Standaard)
Register-EngineEvent
[-SourceIdentifier] <String>
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Description
De Register-EngineEvent-cmdlet abonneert zich op gebeurtenissen die worden gegenereerd door de Windows PowerShell-engine en de New-Event-cmdlet. Gebruik de parameter SourceIdentifier om de gebeurtenis op te geven.
U kunt deze cmdlet gebruiken om u te abonneren op de gebeurtenis en gebeurtenissen van de afsluitende engine die zijn gegenereerd door de New-Event-cmdlet. Deze gebeurtenissen worden automatisch toegevoegd aan uw gebeurteniswachtrij in uw sessie zonder u te abonneren. Met abonneren kunt u echter de gebeurtenissen doorsturen, een actie opgeven om te reageren op de gebeurtenissen en het abonnement opzeggen.
Wanneer de geabonneerde gebeurtenis wordt gegenereerd, wordt deze toegevoegd aan de gebeurteniswachtrij in uw sessie. Gebruik de cmdlet Get-Event om gebeurtenissen in de gebeurteniswachtrij op te halen.
Wanneer u zich abonneert op een gebeurtenis, wordt er een gebeurtenisabonnee toegevoegd aan uw sessie. Gebruik de cmdlet Get-EventSubscriber om de gebeurtenisabonnees in de sessie op te halen. Als u het abonnement wilt annuleren, gebruikt u de Unregister-Event cmdlet, waarmee de abonnee van de gebeurtenis uit de sessie wordt verwijderd.
Voorbeelden
Voorbeeld 1: Een PowerShell-engine-gebeurtenis registreren op externe computers
PS C:\> $S = New-PSSession -ComputerName "Server01, Server02"
PS C:\> Invoke-Command -Session $S { Register-EngineEvent -SourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -Forward }
Met deze opdracht wordt geregistreerd voor een Windows PowerShell-engine-gebeurtenis op twee externe computers.
Met de eerste opdracht maakt u een door de gebruiker beheerde sessie (PSSession) op elk van de externe computers.
De tweede opdracht gebruikt de Invoke-Command cmdlet om de Register-EngineEvent opdracht uit te voeren in de externe sessies.
De opdracht Register-EngineEvent gebruikt de parameter SourceIdentifier om de gebeurtenis te identificeren. Hierbij wordt de parameter Doorsturen gebruikt om de gebeurtenissen van de externe sessie door te sturen naar de lokale sessie.
Voorbeeld 2: Een opgegeven actie ondernemen wanneer het Afsluiten-evenement plaatsvindt
PS C:\> Register-EngineEvent -SourceIdentifier PowerShell.Exiting -SupportEvent -Action {
Get-History | Export-Clixml $Home\history.clixml
}
Deze opdracht laat zien hoe u Register-EngineEvent- uitvoert om een specifieke actie uit te voeren wanneer de gebeurtenis PowerShell.Afsluiten plaatsvindt. De parameter SupportEvent wordt toegevoegd om het gebeurtenisabonnement te verbergen. Wanneer Windows PowerShell wordt afgesloten, wordt de opdrachtgeschiedenis van de afsluitende sessie geƫxporteerd in XML-indeling naar een bestandsnaam en pad in de $Home map van de gebruiker.
Parameters
-Action
Hiermee geeft u opdrachten voor het afhandelen van de gebeurtenissen. De opdrachten in de Actie 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 de parameter Action kan de $Event, $EventSubscriber, $Sender, $EventArgs en automatische variabelen $Args bevatten, die informatie over de gebeurtenis aan het actiescriptblok bieden. Zie about_Automatic_Variables (https://go.microsoft.com/fwlink/?LinkID=113212) voor meer informatie.
Wanneer u een actie opgeeft, retourneert Register-EngineEvent een gebeurtenistaakobject dat deze actie vertegenwoordigt. U kunt 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 |
-Forward
Geeft aan dat de cmdlet gebeurtenissen voor dit abonnement naar de sessie op de lokale computer verzendt. 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.
De waarde van de parameter Action kan de $Event, $EventSubscriber, $Sender, $EventArgs en automatische variabelen $Args bevatten, die informatie over de gebeurtenis aan het actiescriptblok bieden. Zie about_Automatic_Variables (https://go.microsoft.com/fwlink/?LinkID=113212) voor meer informatie.
Wanneer u een actie opgeeft, retourneert Register-EngineEvent een gebeurtenistaakobject dat deze actie vertegenwoordigt. U kunt de taak-cmdlets gebruiken om de gebeurtenistaak te beheren.
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 aanvullende gegevens op die zijn gekoppeld aan de gebeurtenis. De waarde van deze parameter wordt weergegeven in de eigenschap MessageData van het gebeurtenisobject.
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 |
-SourceIdentifier
Hiermee geeft u de bron-id van de gebeurtenis waarop u zich abonneert. De bron-id moet uniek zijn in de huidige sessie. Deze parameter is vereist.
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.
Ondersteunde EngineEvent-waarden zijn PowerShell.Exiting, PowerShell.OnIdle en PowerShell.OnScriptBlockInvoke.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | 100 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-SupportEvent
Geeft aan dat de cmdlet het gebeurtenisabonnement verbergt. Voeg deze parameter toe 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 de parameter SupportEvent, voegt u de parameter Force toe aan de cmdlets Get-EventSubscriber of Unregister-Event.
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 |
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 invoer niet doorsluisen naar Register-EngineEvent-.
Uitvoerwaarden
None or System.Management.Automation.PSEventJob
Als u de parameter
Notities
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.