Register-WmiEvent
Windows Management Instrumentation (WMI) イベントをサブスクライブします。
構文
class (既定)
Register-WmiEvent
[-Class] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
query
Register-WmiEvent
[-Query] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
説明
Register-WmiEvent コマンドレットは、ローカル コンピューターまたはリモート コンピューター上の Windows Management Instrumentation (WMI) イベントをサブスクライブします。
サブスクライブされた WMI イベントが発生すると、イベントがリモート コンピューターで発生した場合でも、ローカル セッションのイベント キューに追加されます。 イベント キュー内のイベントを取得するには、Get-Event コマンドレットを使用します。
Register-WmiEvent のパラメーターを使用して、リモート コンピューター上のイベントをサブスクライブしたり、キュー内のイベントを識別するのに役立つイベントのプロパティ値を指定したりできます。
Action パラメーターを使用して、サブスクライブされたイベントが発生したときに実行するアクションを指定することもできます。
イベントをサブスクライブすると、イベント サブスクライバーがセッションに追加されます。 セッションでイベント サブスクライバーを取得するには、Get-EventSubscriber コマンドレットを使用します。 サブスクリプションを取り消すには、セッションからイベント サブスクライバーを削除する Unregister-Event コマンドレットを使用します。
Windows PowerShell 3.0 を導入した新しい Common Information Model (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 ファイルに書き込まれます。
詳細については、「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 の値には、$Event、$EventSubscriber、$Sender、$EventArgs、$Argsの自動変数を含めることができます。この変数は、イベントに関する情報を Action スクリプト ブロックに提供します。 詳細については、about_Automatic_Variablesを参照してください。
アクションを指定すると、Register-WmiEvent はそのアクションを表すイベント ジョブ オブジェクトを返します。 Job 名詞 (ジョブ コマンドレット) を含むコマンドレットを使用して、イベント ジョブを管理できます。
パラメーターのプロパティ
| 型: | ScriptBlock |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | 101 |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Class
サブスクライブするイベントを指定します。 イベントを生成する WMI クラスを入力します。 すべてのコマンドには、クラス または Query パラメーターが必要です。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
class
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ComputerName
コマンドを実行するコンピューターの名前を指定します。 既定値はローカル コンピューターです。
NetBIOS 名、IP アドレス、またはコンピューターの完全修飾ドメイン名を入力します。 ローカル コンピューターを指定するには、コンピューター名、ドット (.)、または localhost を入力します。
このパラメーターは、Windows PowerShell リモート処理には依存しません。 コンピューターがリモート コマンドを実行するように構成されていない場合でも、ComputerName パラメーターを使用できます。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | Cn |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Credential
このアクションを実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。
User01 や Domain01\User01 などのユーザー名を入力するか、PSCredential オブジェクト (Get-Credential コマンドレットによって生成されたものなど) を入力します。 ユーザー名を入力すると、このコマンドレットによってパスワードの入力が求められます。
パラメーターのプロパティ
| 型: | PSCredential |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Forward
このコマンドレットは、このサブスクリプションのイベントをローカル コンピューター上のセッションに送信することを示します。 このパラメーターは、リモート コンピューターまたはリモート セッションのイベントに登録する場合に使用します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-MaxTriggerCount
トリガーの最大数を指定します。
パラメーターのプロパティ
| 型: | Int32 |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-MessageData
このイベント サブスクリプションに関連付ける追加データを指定します。 このパラメーターの値は、このサブスクリプションに関連付けられているすべてのイベントの MessageData プロパティに表示されます。
パラメーターのプロパティ
| 型: | PSObject |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Namespace
WMI クラスの名前空間を指定します。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | NS |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Query
WMI イベント クラスを識別する WMI クエリ言語 (WQL) のクエリを指定します(例: select * from __InstanceDeletionEvent)。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
query
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SourceIdentifier
サブスクリプションに対して選択する名前を指定します。 選択する名前は、現在のセッションで一意である必要があります。 既定値は、Windows PowerShell によって割り当てられる GUID です。
このパラメーターの値は、サブスクライバー オブジェクトの SourceIdentifier プロパティの値と、このサブスクリプションに関連付けられているすべてのイベント オブジェクトの値に表示されます。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | 100 |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SupportEvent
このコマンドレットがイベント サブスクリプションを非表示にすることを示します。 現在のサブスクリプションがより複雑なイベント登録メカニズムの一部であり、個別に検出すべきでない場合は、このパラメーターを使用します。
SupportEvent パラメーターを使用して作成されたサブスクリプションを表示または取り消すには、Get-EventSubscriber および Unregister-Event コマンドレットの Force パラメーターを指定します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Timeout
Windows PowerShell がこのコマンドの完了を待機する時間を指定します。
既定値の 0 (ゼロ) はタイムアウトがないことを意味し、Windows PowerShell は無期限に待機します。
パラメーターのプロパティ
| 型: | Int64 |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | TimeoutMSec |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
入力
None
このコマンドレットにオブジェクトをパイプすることはできません。
出力
None
このコマンドレットは出力を生成しません。
メモ
Windows Vista 以降のバージョンの Windows オペレーティング システムでこのコマンドレットを使用するには、[管理者として実行] オプションを使用して Windows PowerShell を起動します。
イベント、イベント サブスクリプション、およびイベント キューは、現在のセッションにのみ存在します。 現在のセッションを閉じると、イベント キューは破棄され、イベント サブスクリプションは取り消されます。