次の方法で共有


New-Event

新しいイベントを作成します。

構文

New-Event [-SourceIdentifier] <string> [[-Sender] <psobject>] [[-EventArguments] <PSObject[]>] [[-MessageData] <psobject>] [<CommonParameters>]

説明

New-Event コマンドレットは、新しいカスタム イベントを作成します。

カスタム イベントを使用すると、プログラムの状態の変更や、ハードウェアやシステムの状態、アプリケーションの状態、ディスクの状態、ネットワークの状態、バックグラウンド ジョブの完了など、プログラムによって検出された変更をユーザーに通知できます。

カスタム イベントが発生すると、セッションのイベント キューに自動的に追加されるため、カスタム イベントをサブスクライブする必要はありません。ただし、イベントをローカル セッションに転送したり、イベントに応答するためのアクションを指定したりする場合は、Register-EngineEvent コマンドレットを使用してカスタム イベントをサブスクライブする必要があります。

カスタム イベントをサブスクライブするとき、イベント サブスクライバーがセッションに追加されます。Unregister-Event コマンドレットを使用してイベント サブスクリプションをキャンセルすると、イベント サブスクライバーとカスタム イベントがセッションから削除されます。カスタム イベントをサブスクライブしない場合は、イベントを削除するために、プログラムの状態を変更するか、または Windows PowerShell セッションを終了する必要があります。

パラメーター

-EventArguments <PSObject[]>

イベントのオプションが格納されているオブジェクトを指定します。

必須

false

位置

3

既定値

なし

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

false

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

false

-MessageData <psobject>

このイベントに関連付けられている追加データを指定します。このパラメーターの値は、イベント オブジェクトの MessageData プロパティに表示されます。

必須

false

位置

4

既定値

なし

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

false

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

false

-Sender <psobject>

イベントを発生させるオブジェクトを指定します。既定値は Windows PowerShell エンジンです。

必須

false

位置

2

既定値

なし

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

false

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

false

-SourceIdentifier <string>

新しいイベントの名前を指定します。このパラメーターは必須であり、現在のセッションで一意でなければなりません。

このパラメーターの値は、イベントの SourceIdentifier プロパティに表示されます。

必須

true

位置

1

既定値

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

false

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

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.

入力と出力

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

入力

なし

パイプを使用してこのコマンドレットに入力を渡すことはできません。

出力

System.Management.Automation.PSEventArgs

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

例 1

C:\PS>new-event -sourceidentifier Timer -sender windows.timer  -messagedata "Test"

説明
-----------
このコマンドは、Windows PowerShell イベント キューに新しいイベントを作成します。イベントを送信するために Windows.Timer オブジェクトを使用します。





例 2

C:\PS>function Enable-ProcessCreationEvent 
{ 
   $query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'" 
   $processWatcher = New-Object System.Management.ManagementEventWatcher $query 
   $identifier = "WMI.ProcessCreated" 

   Register-ObjectEvent $processWatcher "EventArrived" -SupportEvent $identifier -Action { 
       [void] (New-Event -sourceID "PowerShell.ProcessCreated" -Sender $args[0] -EventArguments $args[1].SourceEventArgs.NewEvent.TargetInstance) 
   } 
}

説明
-----------
このサンプル関数は、New-Event コマンドレットを使用して、他のイベントに応答してイベントを発生させます。Register-ObjectEvent コマンドレットを使用して、新しいプロセスの作成時に発生する Windows Management Instrumentation (WMI) イベントをサブスクライブします。また、このコマンドレットの Action パラメーターを使用して New-Event コマンドレットを呼び出すことにより、新しいイベントを作成します。

New-Event によって発生するイベントは自動的に Windows PowerShell イベント キューに追加されるため、そのイベントを登録する必要はありません。





関連項目

概念

Register-ObjectEvent
Register-EngineEvent
Register-WmiEvent
Unregister-Event
Get-Event
Remove-Event
Wait-Event