Register-WmiEvent
Windows Management Instrumentation (WMI) イベントにサブスクライブします。
構文
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>]
説明
Register-WmiEvent コマンドレットは、ローカル コンピューターまたはリモート コンピューター上の Windows Management Instrumentation (WMI) イベントをサブスクライブします。
サブスクライブされた WMI イベントの発生時には、リモート コンピューター上で発生した場合でもローカル セッションのイベント キューに追加されます。 イベント キューのイベントを取得するには、Get-Event コマンドレットを使用します。
のパラメーターを使用して、リモート コンピューター上の Register-WmiEvent
イベントをサブスクライブし、キュー内のイベントを識別するのに役立つイベントのプロパティ値を指定できます。
また、Action パラメーターを使用して、サブスクライブされたイベントが発生したときに実行するアクションを指定することもできます。
イベントにサブスクライブするとき、イベント サブスクライバーがセッションに追加されます。 セッションのイベント サブスクライバーを取得するには、Get-EventSubscriber コマンドレットを使用します。 サブスクリプションをキャンセルするには、Unregister-Event コマンドレットを使用します。このコマンドレットは、セッションからイベント サブスクライバーを削除します。
3.0 Windows PowerShell導入された新しい共通情報モデル (CIM) コマンドレットは、WMI コマンドレットと同じタスクを実行します。
CIM コマンドレットは、WS-Management (WSMan) 標準と CIM 標準に準拠しています。これにより、コマンドレットは同じ手法を使用して、Windows オペレーティング システムを実行するコンピューターと他のオペレーティング システムを実行するコンピューターを管理できます。
を使用 Register-WmiEvent
する代わりに、 Register-CimIndicationEvent コマンドレットの使用を検討してください。
例
例 1: クラスによって生成されたイベントをサブスクライブする
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
このコマンドは、 Win32_ProcessStartTrace クラスによって生成されたイベントをサブスクライブします。 プロセスが開始されるたびに、このクラスによってイベントが発生します。
例 2: プロセスの作成イベントをサブスクライブする
PS C:\> Register-WmiEvent -Query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -SourceIdentifier "WMIProcess" -MessageData "Test 01" -TimeOut 500
このコマンドは、クエリを使用して、Win32_process インスタンス作成イベントにサブスクライブします。
例 3: アクションを使用してイベントに応答する
PS C:\> $action = { Get-History | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -Action $action
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 ProcessStarted NotStarted False get-history | where {...
この例は、イベントに応えるアクションの使用方法を示しています。 この例では、プロセスが開始されると現在のセッションの Start-Process コマンドが XML ファイルに書き込まれます。
Action パラメーターを使用すると、Register-WmiEvent はイベント アクションを表すバックグラウンド ジョブを返します。 Get-Job や Receive-Job などの Job コマンドレットを使用して、イベント ジョブを管理できます。
詳細については、「about_Jobs」を参照してください。
例 4: リモート コンピューター上のイベントに登録する
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
PS C:\> Get-Event -SourceIdentifier "Start"
この例では、Server01 リモート コンピューターのイベントを登録します。
イベントは WMI によってローカル コンピューターに返され、現在のセッションのイベント キューに保存されます。 イベントを取得するには、ローカルの Get-Event コマンドを実行します。
パラメーター
-Action
イベントを処理するコマンドを指定します。 Action パラメーターのコマンドは、イベントキューにイベントを送信するのではなく、イベントが発生したときに実行されます。 コマンドを中かっこ ({ }) で囲み、スクリプト ブロックを作成します。
Action の値には、イベントに関する情報を Action スクリプト ブロックに提供する、$Event、$EventSubscriber、$Sender、$EventArgs、および$Args自動変数を含めることができます。 詳細については、「about_Automatic_Variables」を参照してください。
アクションを指定すると、 Register-WmiEvent はそのアクションを表すイベント ジョブ オブジェクトを返します。 Job 名詞 (Job コマンドレット) を含むコマンドレットを使用して、イベント ジョブを管理できます。
Type: | ScriptBlock |
Position: | 101 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Class
サブスクライブするイベントを指定します。 イベントを生成する WMI クラスを入力します。 すべてのコマンドでは 、Class または Query パラメーターが必要です。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
コマンドを実行するコンピューターの名前を指定します。 既定値はローカル コンピューターです。
コンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。 ローカル コンピューターを指定するには、コンピューター名、ドット (.)、または localhost を入力します。
このパラメーターは、Windows PowerShell リモート処理に依存しません。 コンピューターがリモート コマンドを実行するように構成されていない場合でも、ComputerName パラメーターを使用できます。
Type: | String |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
この処理を実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。
User01 や Domain01\User01 などのユーザー名を入力するか、 psCredential オブジェクト (Get-Credential コマンドレットによって生成されたものなど) を入力します。 ユーザー名を入力すると、このコマンドレットによってパスワードの入力が求められます。
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Forward
このコマンドレットは、このサブスクリプションのイベントをローカル コンピューター上のセッションに送信することを示します。 このパラメーターは、リモート コンピューターまたはリモート セッションのイベントに登録する場合に使用します。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaxTriggerCount
最大トリガー数を指定します。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MessageData
このイベント サブスクリプションに関連付けられる任意の追加データを指定します。 このパラメーターの値は、このサブスクリプションに関連付けられているすべてのイベントの MessageData プロパティに表示されます。
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Namespace
WMI クラスの名前空間を指定します。
Type: | String |
Aliases: | NS |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Query
WMI イベント クラスを識別する WMI クエリ言語 (WQL) でクエリを指定します (例: select * from __InstanceDeletionEvent
)。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SourceIdentifier
サブスクリプション用に選択した名前を指定します。 選択した名前は、現在のセッションで一意でなければなりません。 既定値は Windows PowerShell が割り当てた GUID です。
このパラメーターの値は、サブスクライバー オブジェクトおよびこのサブスクリプションに関連付けられたすべてのイベント オブジェクトの SourceIdentifier プロパティの値に表示されます。
Type: | String |
Position: | 100 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SupportEvent
このコマンドレットがイベント サブスクリプションを非表示にすることを示します。 このパラメーターは、現在のサブスクリプションがさらに複雑なイベント登録メカニズムの一部であり、単独で検出されない場合に使用します。
SupportEvent パラメーターを使用して作成されたサブスクリプションを表示または取り消すには、Get-EventSubscriber コマンドレットと Unregister-Event コマンドレットの Force パラメーターを指定します。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Timeout
このコマンドが完了するまでWindows PowerShell待機する時間を指定します。
既定値は 0 (ゼロ) で、タイムアウトがないため、Windows PowerShell は無期限に待機します。
Type: | Int64 |
Aliases: | TimeoutMSec |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
None
このコマンドレットにパイプを使用してオブジェクトを渡すことはできません。
出力
None
このコマンドレットは出力を生成しません。
メモ
Windows Vista 以降のバージョンの Windows オペレーティング システムでこのコマンドレットを使用するには、[管理者として実行] オプションを使用してWindows PowerShellを開始します。
イベント、イベント サブスクリプション、およびイベント キューは、現在のセッションにのみ存在します。 現在のセッションを閉じた場合、イベント キューが破棄され、イベント サブスクリプションが取り消されます。