Register-CimIndicationEvent
Abonniert Hinweise mithilfe eines Filterausdrucks oder eines Abfrageausdrucks.
Syntax
Register-CimIndicationEvent
[-Namespace <String>]
[-ClassName] <String>
[-OperationTimeoutSec <UInt32>]
[-ComputerName <String>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Register-CimIndicationEvent
[-Namespace <String>]
[-ClassName] <String>
[-OperationTimeoutSec <UInt32>]
-CimSession <CimSession>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Register-CimIndicationEvent
[-Namespace <String>]
[-Query] <String>
[-QueryDialect <String>]
[-OperationTimeoutSec <UInt32>]
-CimSession <CimSession>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Register-CimIndicationEvent
[-Namespace <String>]
[-Query] <String>
[-QueryDialect <String>]
[-OperationTimeoutSec <UInt32>]
[-ComputerName <String>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Beschreibung
Das Register-CimIndicationEvent
Cmdlet abonniert Hinweise mithilfe eines Anzeigeklassennamens oder eines Abfrageausdrucks. Verwenden Sie den SourceIdentifier-Parameter , um dem Abonnement einen Namen zu geben.
Dieses Cmdlet gibt ein EventSubscription-Objekt zurück. Sie können dieses Objekt verwenden, um das Abonnement zu kündigen.
Beispiele
Beispiel 1: Registrieren der von einer Klasse generierten Ereignisse
In diesem Beispiel werden die von der Klasse mit dem Namen Win32_ProcessStartTrace generierten Ereignisse abonniert. Diese Klasse löst immer dann ein Ereignis aus, wenn ein Prozess gestartet wird.
Register-CimIndicationEvent -ClassName 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
Get-Event -SourceIdentifier "ProcessStarted"
Das Get-Event
Cmdlet ruft die Ereignisse mit dem ProcessStarted-Abonnement ab. Weitere Informationen finden Sie unter Get-Event.
Hinweis
In diesem Beispiel müssen Sie PowerShell als Administrator ausführen.
Beispiel 2: Registrieren der Ereignisse mithilfe einer Abfrage
In diesem Beispiel wird eine Abfrage verwendet, um ein Ereignis zu abonnieren, das generiert wird, wenn es eine Änderung in der Instanz einer Klasse mit dem Namen Win32_LocalTime gibt.
$query = "SELECT * FROM CIM_InstModification WHERE TargetInstance ISA 'Win32_LocalTime'"
Register-CimIndicationEvent -Query $query -SourceIdentifier "Timer"
Beispiel 3: Ausführen eines Skripts, wenn das Ereignis eintrifft
In diesem Beispiel wird gezeigt, wie eine Aktion als Reaktion auf ein Ereignis verwendet wird. Die Variable $action
enthält den Skriptblock für Action, der die $event
Variable verwendet, um auf das von CIM empfangene Ereignis zuzugreifen.
$action = {
$name = $event.SourceEventArgs.NewEvent.ProcessName
$id = $event.SourceEventArgs.NewEvent.ProcessId
Write-Host -Object "New Process Started : Name = $name
ID = $id"
}
Register-CimIndicationEvent -ClassName 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -Action $action
Weitere Informationen finden Sie unter Win32_ProcessStartTrace.
Beispiel 4: Registrieren der Ereignisse auf einem Remotecomputer
In diesem Beispiel werden Ereignisse auf einem Remotecomputer namens "Server01" abonniert. Vom CIM-Server empfangene Ereignisse werden in der Ereigniswarteschlange in der aktuellen PowerShell-Sitzung gespeichert und anschließend ein lokales Get-Event
Ereignis zum Abrufen der Ereignisse ausgeführt.
Register-CimIndicationEvent -ClassName 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -ComputerName Server01
Get-Event -SourceIdentifier "ProcessStarted"
Parameter
-Action
Gibt die Befehle an, die die Ereignisse behandeln. Die von diesem Parameter angegebenen Befehle werden ausgeführt, wenn ein Ereignis ausgelöst wird, anstatt das Ereignis an die Ereigniswarteschlange zu senden. Schließen Sie die Befehle in geschweifte Klammern ({}
) ein, um einen Skriptblock zu erstellen.
Der mit "Action " angegebene Skriptblock kann die $Event
Variablen , $EventSubscriber
, $Sender
, $SourceEventArgs
und $SourceArgs
automatische Variablen enthalten, die Informationen zum Ereignis für den Aktionsskriptblock bereitstellen. Weitere Informationen finden Sie unter "Informationen zu automatischen Variablen".
Typ: | ScriptBlock |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-CimSession
Führt den Befehl mithilfe der angegebenen CIM-Sitzung aus. Geben Sie eine Variable ein, die die CIM-Sitzung enthält, oder einen Befehl, der die CIM-Sitzung erstellt oder abruft, z. B. die New-CimSession
Oder Get-CimSession
Cmdlets. Weitere Informationen finden Sie unter about_CimSession.
Typ: | CimSession |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ClassName
Gibt die Anzeigeklasse an, der Sie abonnieren. Sie können den Tabstoppabschluss verwenden, um die Liste der Klassen zu durchsuchen, da PowerShell eine Liste von Klassen vom lokalen WMI-Server abruft, um eine Liste der Klassennamen bereitzustellen.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ComputerName
Gibt den Namen des Computers an, auf dem Der CIM-Vorgang ausgeführt werden soll. Sie können einen vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN), einen NetBIOS-Namen oder eine IP-Adresse angeben.
Wenn Sie diesen Parameter angeben, erstellt das Cmdlet mithilfe des WsMan-Protokolls eine temporäre Sitzung auf dem angegebenen Computer. Wenn Sie diesen Parameter nicht angeben, führt das Cmdlet einen Vorgang auf dem lokalen System mithilfe des Component Object Model (COM) aus.
Wenn mehrere Vorgänge auf demselben Computer ausgeführt werden, stellen Sie die Verbindung mit einer CIM-Sitzung her, um eine bessere Leistung zu erzielen.
Typ: | String |
Aliase: | CN, ServerName |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Forward
Gibt an, dass Ereignisse für das Abonnement an die Sitzung auf dem lokalen Computer weitergeleitet werden. Verwenden Sie diesen Parameter, wenn Sie sich auf einem Remotecomputer oder in einer Remotesitzung für Ereignisse registrieren.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-MaxTriggerCount
Parameter, der angibt, dass die Registrierung des Abonnenten automatisch aufgehoben werden soll, nachdem sie für bestimmte Zeiten ausgelöst wurde. Wenn der Wert gleich oder kleiner als Null ist, gibt es kein Limit für die Häufigkeit, mit der das Ereignis ausgelöst werden kann, ohne die Registrierung aufzuheben.
Typ: | Int32 |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-MessageData
Gibt alle zusätzlichen Daten an, die diesem Ereignisabonnement zugeordnet werden sollen. Der Wert dieses Parameters wird in der MessageData-Eigenschaft aller Ereignisse angezeigt, die diesem Abonnement zugeordnet sind.
Typ: | PSObject |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Namespace
Gibt den Namespace für den CIM-Vorgang an. Der Standardnamespace ist root/cimv2. Sie können die Registerkartenabschluss verwenden, um die Liste der Namespaces zu durchsuchen, da PowerShell eine Liste von Namespaces vom lokalen WMI-Server abruft, um die Liste der Namespaces bereitzustellen.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-OperationTimeoutSec
Gibt die Zeitspanne an, die das Cmdlet auf eine Antwort vom Computer wartet. Standardmäßig ist der Wert dieses Parameters 0, was bedeutet, dass das Cmdlet den Standardtimeoutwert für den Server verwendet.
Wenn der Parameter OperationTimeoutSec auf einen Wert festgelegt ist, der kleiner als das robuste Verbindungsretrytimeout von 3 Minuten ist, können Netzwerkfehler, die mehr als der Wert des OperationTimeoutSec-Parameters dauern, nicht wiederhergestellt werden, da der Vorgang auf dem Server zu einem Timeout vor dem erneuten Herstellen der Verbindung führen kann.
Typ: | UInt32 |
Aliase: | OT |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Query
Gibt eine Abfrage an, die auf dem CIM-Server ausgeführt werden soll. Wenn der angegebene Wert doppelte Anführungszeichen "
, einfache Anführungszeichen '
oder einen umgekehrten Schrägstrich \
enthält, müssen Sie diese Zeichen escapen, indem Sie sie dem umgekehrten Schrägstrich voranstellen. Wenn der angegebene Wert den WQL LIKE-Operator verwendet, müssen Sie die folgenden Zeichen escapen, indem Sie sie in eckige Klammern []
einschließen: Prozent %
, Unterstrich _
oder öffnende eckige Klammer [
.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-QueryDialect
Gibt die Abfragesprache an, die für den Abfrageparameter verwendet wird. Die zulässigen Werte für diesen Parameter sind: WQL oder CQL. Der Standardwert ist WQL.
Typ: | String |
Position: | Named |
Standardwert: | WQL |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SourceIdentifier
Gibt einen Namen für das Abonnement an. Der angegebene Name muss in der aktuellen Sitzung eindeutig sein. Der Standardwert ist eine GUID, die PowerShell zuweist. Dieser Wert wird im Wert der SourceIdentifier-Eigenschaft des Abonnentenobjekts und aller diesem Abonnement zugeordneten Ereignisobjekte angezeigt.
Typ: | String |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SupportEvent
Gibt an, dass das Ereignisabonnement ausgeblendet ist. Verwenden Sie diesen Parameter, wenn das aktuelle Abonnement Teil eines komplexeren Ereignisregistrierungsmechanismus ist und nicht unabhängig erfasst werden soll.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt ein EventSubscription-Objekt zurück.