New-Event

建立新的事件。

Syntax

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

Description

Cmdlet New-Event 會建立新的自定義事件。

您可以使用自定義事件來通知使用者程式的狀態變更,以及程式可偵測到的任何變更,包括硬體或系統狀況、應用程式狀態、磁碟狀態、網路狀態或背景作業完成。

每當引發自定義事件時,就會自動新增至會話中的事件佇列;您不需要訂閱它們。 不過,如果您想要將事件轉送至本機會話,或指定回應事件的動作,請使用 Register-EngineEvent Cmdlet 訂閱自定義事件。

當您訂閱自定義事件時,事件訂閱者會新增至您的會話。 如果您使用 Cmdlet 取消事件訂閱 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 使用 Cmdlet 來引發事件,以回應另一個事件。 命令會 Register-ObjectEvent 使用 Cmdlet 訂閱建立新進程時引發的 Windows Management Instrumentation (WMI) 事件。 此命令會使用 Cmdlet 的 Action 參數來呼叫 New-Event Cmdlet,以建立新的事件。

由於引發的事件 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

您無法使用管線將物件傳送至此 Cmdlet。

輸出

PSEventArgs

備註

Linux 或macOS平台上沒有可用的事件來源。

新的自定義事件、事件訂用帳戶和事件佇列只存在於目前的會話中。 如果您關閉目前的會話,則會捨棄事件佇列,並取消事件訂閱。