New-Event
新しいイベントを作成します。
構文
New-Event
[-SourceIdentifier] <String>
[[-Sender] <PSObject>]
[[-EventArguments] <PSObject[]>]
[[-MessageData] <PSObject>]
[<CommonParameters>]
説明
New-Event
コマンドレットは、新しいカスタム イベントを作成します。
カスタム イベントを使用して、プログラム内の状態の変更やプログラムが検出した変更 (ハードウェアまたはシステムの状態、アプリケーションの状態、ディスクの状態、ネットワークの状態、バック グラウンド ジョブの完了など) についてユーザーに通知することができます。
カスタム イベントは、セッションで発生するたびにイベント キューに自動的に追加されます。それらをサブスクライブする必要はありません。 ただし、イベントをローカル セッションに転送する場合、またはイベントに応答するアクションを指定する場合は、 Register-EngineEvent
コマンドレットを使用してカスタム イベントをサブスクライブします。
カスタム イベントをサブスクライブすると、イベント サブスクライバーがセッションに追加されます。 Unregister-Event
コマンドレットを使用してイベント サブスクリプションを取り消すと、イベント サブスクライバーとカスタム イベントがセッションから削除されます。 カスタム イベントをサブスクライブしない場合は、イベントを削除するには、プログラムの条件を変更するか、PowerShell セッションを閉じる必要があります。
例
例 1: イベント キューに新しいイベントを作成する
PS C:\> New-Event -SourceIdentifier Timer -Sender windows.timer -MessageData "Test"
このコマンドは、PowerShell イベント キューに新しいイベントを作成します。 Windows.Timer オブジェクトを使用してイベントを送信します。
例 2: 別のイベントに応答してイベントを発生させる
PS C:\> 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
イベントは PowerShell イベント キューに自動的に追加されるため、そのイベントに登録する必要はありません。
パラメーター
-EventArguments
イベントのオプションを格納しているオブジェクトを指定します。
型: | PSObject[] |
配置: | 2 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-MessageData
イベントに関連付けられている追加のデータを指定します。 このパラメーターの値は、イベント オブジェクトの MessageData プロパティに表示されます。
型: | PSObject |
配置: | 3 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Sender
イベントを発生させるオブジェクトを指定します。 既定値は PowerShell エンジンです。
型: | PSObject |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SourceIdentifier
新しいイベントの名前を指定します。 このパラメーターは必須であり、セッション内で一意である必要があります。
このパラメーターの値は、イベントの SourceIdentifier プロパティに表示されます。
型: | String |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
None
このコマンドレットにオブジェクトをパイプすることはできません。
出力
メモ
Linux または macOS プラットフォームで使用できるイベント ソースはありません。
新しいカスタム イベント、イベント サブスクリプション、およびイベント キューは、現在のセッションにのみ存在します。 現在のセッションを閉じた場合、イベント キューが破棄され、イベント サブスクリプションが取り消されます。
関連リンク
PowerShell