Windows Management Instrumentation (WMI) イベントにサブスクライブします。

構文

Register-WmiEvent [-Class] <string> [[-SourceIdentifier] <string>] [[-Action] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-Forward] [-MessageData <psobject>] [-Namespace <string>] [-SupportEvent] [-Timeout <Int64>] [<CommonParameters>]

Register-WmiEvent [-Query] <string> [[-SourceIdentifier] <string>] [[-Action] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-Forward] [-MessageData <psobject>] [-Namespace <string>] [-SupportEvent] [-Timeout <Int64>] [<CommonParameters>]

説明

Register-WmiEvent コマンドレットは、ローカル コンピューターまたはリモート コンピューター上の WMI イベントにサブスクライブします。

サブスクライブされた WMI イベントの発生時には、リモート コンピューター上で発生した場合でもローカル セッションのイベント キューに追加されます。イベント キューのイベントを取得するには、Get-Event コマンドレットを使用します。

Register-WmiEvent のパラメーターを使用してリモート コンピューター上のイベントにサブスクライブし、キューでイベントを識別できるようにイベントのプロパティ値を指定することができます。Action パラメーターを使用して、サブスクライブされたイベントの発生時に実行するアクションを指定することもできます。

イベントにサブスクライブするとき、イベント サブスクライバーがセッションに追加されます。セッションのイベント サブスクライバーを取得するには、Get-EventSubscriber コマンドレットを使用します。サブスクリプションをキャンセルするには、Unregister-Event コマンドレットを使用して、セッションからイベント サブスクライバーを削除します。

パラメーター

-Action <scriptblock>

イベントを取り扱うコマンドを指定します。Action パラメーターのコマンドは、イベント キューへのイベントの送信時ではなく、イベントの発生時に実行されます。コマンドを中かっこ ({ }) で囲み、スクリプト ブロックを作成します。

Action パラメーターの値には、イベントに関する情報を Action スクリプト ブロックに提供する、$Event、$EventSubscriber、$Sender、$SourceEventArgs、および $SourceArgs 自動変数を含めることができます。詳細については、「about_Automatic_Variables」を参照してください。

アクションを指定すると、Register-WmiEvent は、そのアクションを表すイベント ジョブ オブジェクトを返します。Job という名詞を含むコマンドレット (Job コマンドレット) を使用して、イベント ジョブを管理できます。

必須

false

位置

102

既定値

The event is added to the event queue.

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Class <string>

サブスクライブするイベントを指定します。イベントを生成する WMI クラスを入力します。各コマンドには Class パラメーターまたは Query パラメーターが必要です。

必須

true

位置

1

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-ComputerName <string>

リモート コンピューターを指定します。既定値はローカル コンピューターです。NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。

必須

false

位置

named

既定値

Local computer

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Credential <PSCredential>

この処理を実行するアクセス許可を持つユーザー アカウントを指定します。"User01" や "Domain01\User01" などユーザー名を入力します。または、Get-Credential コマンドレットで返されるような PSCredential オブジェクトを入力します。ユーザー名を入力すると、パスワードの入力を促すメッセージが表示されます。

必須

false

位置

named

既定値

The credentials of the current user

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Forward

このサブスクリプションのイベントをローカル コンピューター上のセッションに送信します。このパラメーターは、リモート コンピューターまたはリモート セッションのイベントに登録する場合に使用します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-MessageData <psobject>

このイベント サブスクリプションに関連付けられている任意の追加データを指定します。このパラメーターの値は、このサブスクリプションに関連付けられたすべてのイベントの MessageData プロパティに表示されます。

必須

false

位置

named

既定値

None. The MessageData property is NULL.

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Namespace <string>

WMI クラスの名前空間を指定します。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Query <string>

WMI イベント クラスを識別する select * from __InstanceDeletionEvent などの WMI クエリ言語 (WQL) のクエリを指定します。

必須

true

位置

1

既定値

なし

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-SourceIdentifier <string>

サブスクリプション用に選択した名前を指定します。選択した名前は、現在のセッションで一意でなければなりません。既定値は Windows PowerShell が割り当てた GUID です。

このパラメーターの値は、サブスクライバー オブジェクトおよびこのサブスクリプションに関連付けられたすべてのイベント オブジェクトの SourceIdentifier プロパティの値に表示されます。

必須

false

位置

101

既定値

GUID

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-SupportEvent

イベント サブスクリプションを非表示にします。このパラメーターは、現在のサブスクリプションがさらに複雑なイベント登録メカニズムの一部であり、単独で検出されない場合に使用します。

SupportEvent パラメーターを使用して作成されたサブスクリプションを表示またはキャンセルするには、Get-EventSubscriber および Unregister-Event コマンドレットの Force パラメーターを使用します。

必須

false

位置

named

既定値

False

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Timeout <Int64>

このコマンドが終了するまで Windows PowerShell が待機する時間を指定します。

既定値は 0 (ゼロ) で、タイムアウトがないため、Windows PowerShell は無期限に待機します。

必須

false

位置

named

既定値

0

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

なし

パイプを使用してオブジェクトを Register-WmiEvent に渡すことはできません。

出力

なし

このコマンドレットは出力を生成しません。

Windows Vista 以降のバージョンの Windows でこのコマンドレットを使用するには、Windows PowerShell を開く際に [管理者として実行] を指定する必要があります。

イベント、イベント サブスクリプション、およびイベント キューは、現在のセッションにのみ存在します。現在のセッションを閉じた場合、イベント キューが破棄され、イベント サブスクリプションが取り消されます。

例 1

C:\PS>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "ProcessStarted"

説明
-----------
このコマンドは、Win32_ProcessStartTrace クラスによって生成されたイベントにサブスクライブします。プロセスが開始されるたびにこのクラスによってイベントが発生します。






例 2

C:\PS>register-wmiEvent -query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -sourceIdentifier "WMIProcess" -messageData "Test 01" -timeout 500

説明
-----------
このコマンドは、Win32_process インスタンス作成イベントにサブスクライブするクエリを使用します。






例 3

C:\PS>$action = { get-history | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }

C:\PS> 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

C:\PS>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "Start" -computername Server01 

C:\PS> get-event -sourceIdentifier "Start"

説明
-----------
この例では、Server01 リモート コンピューターのイベントを登録します。

イベントは WMI によってローカル コンピューターに返され、現在のセッションのイベント キューに保存されます。イベントを取得するには、ローカル Get-Event コマンドを実行します。






関連項目




目次