New-Event
Vytvoří novou událost.
Syntaxe
New-Event
[-SourceIdentifier] <String>
[[-Sender] <PSObject>]
[[-EventArguments] <PSObject[]>]
[[-MessageData] <PSObject>]
[<CommonParameters>]
Description
Rutina New-Event
vytvoří novou vlastní událost.
Pomocí vlastních událostí můžete uživatele informovat o změnách stavu v programu a o všech změnách, které může program detekovat, včetně stavu hardwaru nebo systému, stavu aplikace, stavu disku, stavu sítě nebo dokončení úlohy na pozadí.
Vlastní události se automaticky přidají do fronty událostí ve vaší relaci při každém vyvolání; nemusíte se přihlásit k jejich odběru. Pokud ale chcete událost přeposlat místní relaci nebo zadat akci, která má na událost reagovat, použijte Register-EngineEvent
rutinu k přihlášení k odběru vlastní události.
Když se přihlásíte k odběru vlastní události, odběratel události se přidá do vaší relace. Pokud zrušíte odběr událostí pomocí Unregister-Event
rutiny, odběratel události a vlastní událost se z relace odstraní. Pokud se k odběru vlastní události nepřihlásíte, musíte změnit podmínky programu nebo zavřít relaci PowerShellu.
Příklady
Příklad 1: Vytvoření nové události ve frontě událostí
PS C:\> New-Event -SourceIdentifier Timer -Sender windows.timer -MessageData "Test"
Tento příkaz vytvoří novou událost ve frontě událostí PowerShellu. K odeslání události používá objekt Windows.Timer .
Příklad 2: Vyvolání události v reakci na jinou událost
PS C:\> function Enable-ProcessCreationEvent
{
$Query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"
$ProcessWatcher = New-Object System.Management.ManagementEventWatcher $Query
$Identifier = "WMI.ProcessCreated"
Register-ObjectEvent $ProcessWatcher "EventArrived" -SupportEvent $Identifier -Action
{
[void] (New-Event -SourceID "PowerShell.ProcessCreated" -Sender $Args[0] -EventArguments $Args[1].SourceEventArgs.NewEvent.TargetInstance)
}
}
Tato ukázková funkce používá rutinu New-Event
k vyvolání události v reakci na jinou událost. Příkaz používá rutinu Register-ObjectEvent
k přihlášení k odběru události WMI (Windows Management Instrumentation), která se vyvolá při vytvoření nového procesu. Příkaz používá parametr Akce rutiny k volání rutiny New-Event
, která vytvoří novou událost.
Vzhledem k tomu, že události, které New-Event
vyvolává, se automaticky přidají do fronty událostí PowerShellu, nemusíte se k této události registrovat.
Parametry
-EventArguments
Určuje objekt, který obsahuje možnosti události.
Typ: | PSObject[] |
Position: | 2 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-MessageData
Určuje další data přidružená k události. Hodnota tohoto parametru se zobrazí ve vlastnosti MessageData objektu události.
Typ: | PSObject |
Position: | 3 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Sender
Určuje objekt, který vyvolá událost. Výchozí hodnotou je modul PowerShellu.
Typ: | PSObject |
Position: | 1 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SourceIdentifier
Určuje název nové události. Tento parametr je povinný a musí být v relaci jedinečný.
Hodnota tohoto parametru se zobrazí ve Vlastnosti SourceIdentifier událostí.
Typ: | String |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
None
Do této rutiny nemůžete roušit objekty.
Výstupy
Poznámky
Na platformách Linux nebo macOS nejsou dostupné žádné zdroje událostí.
Nová vlastní událost, odběr událostí a fronta událostí existují pouze v aktuální relaci. Pokud zavřete aktuální relaci, fronta událostí se zahodí a odběr události se zruší.