Register-WmiEvent

Přihlásí se k odběru události WMI (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

Rutina Register-WmiEvent se přihlásí k odběru událostí služby WMI (Windows Management Instrumentation) na místním počítači nebo ve vzdáleném počítači.

Když se vyvolá předplacená událost rozhraní WMI, přidá se do fronty událostí v místní relaci i v případě, že k události dojde ve vzdáleném počítači. K získání událostí ve frontě událostí použijte rutinu Get-Event .

Parametry přihlášení k odběru Register-WmiEvent událostí na vzdálených počítačích a určení hodnot vlastností událostí, které vám můžou pomoct identifikovat událost ve frontě. Pomocí parametru Akce můžete také určit akce, které se mají provést při vyvolání odebírané události.

Když se přihlásíte k odběru události, přidá se do vaší relace odběratel události. Pokud chcete získat odběratele událostí v relaci, použijte tuto rutinu Get-EventSubscriber . Pokud chcete předplatné zrušit, použijte rutinu Unregister-Event , která odstraní odběratele události z relace.

Nové rutiny MODELU CIM (Common Information Model), zavedené ve Windows PowerShellu 3.0, provádějí stejné úlohy jako rutiny rozhraní WMI. Rutiny CIM vyhovují standardům WS-Management (WSMan) a standardu CIM, což umožňuje rutinám používat stejné techniky ke správě počítačů s operačním systémem Windows a těch, které používají jiné operační systémy. Místo použití Register-WmiEventzvažte použití rutiny Register-CimIndicationEvent .

Příklady

Příklad 1: Přihlášení k odběru událostí generovaných třídou

Tento příkaz se přihlásí k odběru událostí generovaných Win32_ProcessStartTrace třídou. Tato třída vyvolá událost při každém spuštění procesu.

Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"

Příklad 2: Přihlášení k odběru událostí vytváření procesu

Tento příkaz používá dotaz k přihlášení k odběru událostí vytvoření instance Win32_process.

$wmiParameters = @{
  Query = "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'"
  SourceIdentifier = "WMIProcess"
  MessageData = "Test 01"
  TimeOut = 500
}
Register-WmiEvent @wmiParameters

Příklad 3: Použití akce k reakci na událost

Tento příklad ukazuje, jak pomocí akce reagovat na událost. V takovém případě se při spuštění procesu všechny Start-Process příkazy v aktuální relaci zapíšou do souboru XML.

$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 {...

Pokud použijete parametr Akce , Register-WmiEvent vrátí úlohu na pozadí, která představuje akci události. Ke správě úlohy můžete použít rutiny Úlohy , například Get-Job a Receive-Job.

Další informace najdete v tématu Informace o úlohách.

Příklad 4: Registrace událostí ve vzdáleném počítači

Tento příklad registruje události na vzdáleném počítači Server01.

Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
Get-Event -SourceIdentifier "Start"

Rozhraní WMI vrátí události do místního počítače a uloží je do fronty událostí v aktuální relaci. Pokud chcete načíst události, spusťte místní Get-Event příkaz.

Parametry

-Action

Určuje příkazy, které zpracovávají události. Příkazy v parametru akce se spustí při vyvolání události místo odeslání události do fronty událostí. Uzavřete příkazy do složených závorek ({}) a vytvořte blok skriptu.

Hodnota Akce může zahrnovat $Eventproměnné , $EventArgs$Sender$EventSubscribera $Args automatické proměnné, které poskytují informace o události do bloku skriptu akce. Další informace najdete v tématu about_Automatic_Variables.

Když zadáte akci, Register-WmiEvent vrátí objekt úlohy události, který tuto akci představuje. Ke správě úlohy události můžete použít rutiny obsahující podstatná jména úlohy ( rutiny úlohy ).

Type:ScriptBlock
Position:101
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Class

Určuje událost, ke které se přihlašujete k odběru. Zadejte třídu rozhraní WMI, která generuje události. Každý příkaz vyžaduje parametr třídy nebo dotazu .

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Určuje název počítače, na kterém se příkaz spouští. Ve výchozím nastavení je to místní počítač.

Zadejte název NetBIOS, IP adresu nebo plně kvalifikovaný název domény počítače. Chcete-li zadat místní počítač, zadejte název počítače, tečku (.) nebo localhost.

Tento parametr nespoléhá na vzdálené komunikace Windows PowerShellu. Parametr ComputerName můžete použít i v případě, že váš počítač není nakonfigurovaný tak, aby spouštět vzdálené příkazy.

Type:String
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Určuje uživatelský účet, který má oprávnění k provedení této akce. Ve výchozím nastavení je to aktuální uživatel.

Zadejte uživatelské jméno, například User01 nebo Domain01\User01, nebo zadejte objekt PSCredential , například objekt vygenerovaný rutinou Get-Credential . Pokud zadáte uživatelské jméno, tato rutina vás vyzve k zadání hesla.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Forward

Označuje, že tato rutina odesílá události pro toto předplatné do relace v místním počítači. Tento parametr použijte při registraci událostí na vzdáleném počítači nebo ve vzdálené relaci.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxTriggerCount

Určuje maximální počet aktivačních událostí.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MessageData

Určuje všechna další data, která se mají přidružit k tomuto odběru událostí. Hodnota tohoto parametru se zobrazí ve vlastnosti MessageData všech událostí přidružených k tomuto odběru.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Namespace

Určuje obor názvů třídy WMI.

Type:String
Aliases:NS
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Query

Určuje dotaz v jazyce WMI Query Language (WQL), který identifikuje třídu událostí rozhraní WMI, například: select * from __InstanceDeletionEvent.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SourceIdentifier

Určuje název, který vyberete pro předplatné. Název, který vyberete, musí být v aktuální relaci jedinečný. Výchozí hodnota je identifikátor GUID, který windows PowerShell přiřadí.

Hodnota tohoto parametru se zobrazí v hodnotě SourceIdentifier vlastnost odběratel objektu a všech objektů událostí přidružených k tomuto odběru.

Type:String
Position:100
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SupportEvent

Označuje, že tato rutina skryje odběr událostí. Tento parametr použijte, pokud je aktuální odběr součástí složitějšího mechanismu registrace událostí a neměl by být zjištěn nezávisle.

Pokud chcete zobrazit nebo zrušit předplatné vytvořené pomocí parametru SupportEvent , zadejte parametr Force pro rutiny Get-EventSubscriber a Unregister-Event rutiny.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Timeout

Určuje, jak dlouho windows PowerShell čeká na dokončení tohoto příkazu.

Výchozí hodnota 0 (nula) znamená, že neexistuje časový limit a způsobí, že Windows PowerShell počká na neomezenou dobu.

Type:Int64
Aliases:TimeoutMSec
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

None

Do této rutiny nelze vést objekty.

Výstupy

None

Tato rutina negeneruje žádný výstup.

Poznámky

Pokud chcete tuto rutinu použít ve Windows Vista nebo novější verzi operačního systému Windows, spusťte Windows PowerShell pomocí možnosti Spustit jako správce.

Události, odběry 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ší.