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:Create 事件佇列中的新事件
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。
輸出
備註
Linux 或macOS平台上沒有可用的事件來源。
新的自訂事件、事件訂閱與事件佇列只會存在目前的工作階段。 若關閉目前工作階段,便會捨棄事件佇列,並取消事件訂閱。