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

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

Type:PSObject[]
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MessageData

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

Type:PSObject
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Sender

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

Type:PSObject
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceIdentifier

新しいイベントの名前を指定します。 このパラメーターは必須であり、セッション内で一意である必要があります。

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

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

入力

None

このコマンドレットにオブジェクトをパイプすることはできません。

出力

PSEventArgs

メモ

Linux または macOS プラットフォームで使用できるイベント ソースはありません。

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