PowerShell Cmdlet - Register-WmiEvent
 記事記号:[mg1953] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Register-WmiEvent
    
概要
    Windows Management Instrumentation (WMI) イベントにサブスクライブします。
    
構文
    Register-WmiEvent [-Class] <string> [[-SourceIdentifier] <string>] [[-Action
    ] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-For
    ward] [-MessageData <psobject>] [-Namespace <string>] [-SupportEvent] [-Time
    out <Int64>] [<CommonParameters>]
    
    Register-WmiEvent [-Query] <string> [[-SourceIdentifier] <string>] [[-Action
    ] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-For
    ward] [-MessageData <psobject>] [-Namespace <string>] [-SupportEvent] [-Time
    out <Int64>] [<CommonParameters>]
    
説明
    Register-WmiEvent コマンドレットは、ローカル コンピューターまたはリモート コ
    ンピューター上の WMI イベントにサブスクライブします。
    
    サブスクライブされた WMI イベントの発生時には、リモート コンピューター上で発
    生した場合でもローカル セッションのイベント キューに追加されます。イベント 
    キューのイベントを取得するには、Get-Event コマンドレットを使用します。
    
    Register-WmiEvent のパラメーターを使用してリモート コンピューター上のイベン
    トにサブスクライブし、キューでイベントを識別できるようにイベントのプロパティ
    値を指定することができます。Action パラメーターを使用して、サブスクライブさ
    れたイベントの発生時に実行するアクションを指定することもできます。
    
    イベントにサブスクライブするとき、イベント サブスクライバーがセッションに追
    加されます。セッションのイベント サブスクライバーを取得するには、Get-EventSu
    bscriber コマンドレットを使用します。サブスクリプションをキャンセルするには、
    Unregister-Event コマンドレットを使用して、セッションからイベント サブスクラ
    イバーを削除します。

パラメーター
    -Action <scriptblock>
        イベントを取り扱うコマンドを指定します。Action パラメーターのコマンドは、
        イベント キューへのイベントの送信時ではなく、イベントの発生時に実行され
        ます。コマンドを中かっこ ({ }) で囲み、スクリプト ブロックを作成します。
        
        Action パラメーターの値には、イベントに関する情報を Action スクリプト ブ
        ロックに提供する、$Event、$EventSubscriber、$Sender、$SourceEventArgs、
        および $SourceArgs 自動変数を含めることができます。詳細については、「abo
        ut_Automatic_Variables」を参照してください。
        
        アクションを指定すると、Register-WmiEvent は、そのアクションを表すイベン
        ト ジョブ オブジェクトを返します。Job という名詞を含むコマンドレット (Jo
        b コマンドレット) を使用して、イベント ジョブを管理できます。
        
        必須                         false
        位置                         102
        既定値                       このイベントはイベント キューに追加されます。
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Class <string>
        サブスクライブするイベントを指定します。イベントを生成する WMI クラスを
        入力します。各コマンドには Class パラメーターまたは Query パラメーターが
        必要です。
        
        必須                         true
        位置                         1
        既定値                       なし
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -ComputerName <string>
        リモート コンピューターを指定します。既定値はローカル コンピューターです。
        NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。
        
        必須                         false
        位置                         named
        既定値                       ローカル コンピューター
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Credential <PSCredential>
        この処理を実行するアクセス許可を持つユーザー アカウントを指定します。"Us
        er01" や "Domain01\User01" などユーザー名を入力します。または、Get-Crede
        ntial コマンドレットで返されるような PSCredential オブジェクトを入力しま
        す。ユーザー名を入力すると、パスワードの入力を促すメッセージが表示されま
        す。
        
        必須                         false
        位置                         named
        既定値                       現在のユーザーの資格情報
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Forward [<SwitchParameter>]
        このサブスクリプションのイベントをローカル コンピューター上のセッション
        に送信します。このパラメーターは、リモート コンピューターまたはリモート 
        セッションのイベントに登録する場合に使用します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -MessageData <psobject>
        このイベント サブスクリプションに関連付けられている任意の追加データを指
        定します。このパラメーターの値は、このサブスクリプションに関連付けられた
        すべてのイベントの MessageData プロパティに表示されます。
        
        必須                         false
        位置                         named
        既定値                       なし。 MessageData プロパティは 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 です。
        
        このパラメーターの値は、サブスクライバー オブジェクトおよびこのサブスク
        リプションに関連付けられたすべてのイベント オブジェクトの SourceIdentifi
        er プロパティの値に表示されます。
        
        必須                         false
        位置                         101
        既定値                       GUID
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -SupportEvent [<SwitchParameter>]
        イベント サブスクリプションを非表示にします。このパラメーターは、現在の
        サブスクリプションがさらに複雑なイベント登録メカニズムの一部であり、単独
        で検出されない場合に使用します。
        
        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、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help 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 "S
    tart" -computername Server01 
    
    C:\PS> get-event -sourceIdentifier "Start"
    
    説明
    -----------
    この例では、Server01 リモート コンピューターのイベントを登録します。
    
    イベントは WMI によってローカル コンピューターに返され、現在のセッションのイベ
    ント キューに保存されます。イベントを取得するには、ローカル Get-Event コマンド
    を実行します。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=135245
    Register-ObjectEvent 
    Register-EngineEvent 
    Unregister-Event 
    Get-Event 
    New-Event 
    Remove-Event 
    Wait-Event 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Register-WmiEvent
ご利用数: 1862342
感想・要望・問い合わせは こちら