建立新的事件。
語法
New-Event [-SourceIdentifier] <string> [[-Sender] <psobject>] [[-EventArguments] <PSObject[]>] [[-MessageData] <psobject>] [<CommonParameters>]
描述
New-Event Cmdlet 會建立新的自訂事件。
您可以使用自訂事件,通知使用者有關您程式中的狀態變更,或是您程式能偵測到的任何變更,包括硬體或系統狀態、應用程式狀態、磁碟狀態、網路狀態或背景工作的完成。
當引發自訂事件時,自訂事件會自動新增到工作階段中的事件佇列,因此不需加以訂閱。不過,如果要將事件轉送給本機工作階段,或指定回應事件的動作,請使用 Register-EngineEvent Cmdlet 訂閱自訂事件。
訂閱自訂事件時,事件訂閱者會新增到工作階段。如果使用 Unregister-Event Cmdlet 取消訂閱,就會從工作階段刪除事件訂閱者和自訂事件。如果不訂閱自訂事件,而要刪除事件,則必須變更程式狀態或關閉 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>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
無 您無法經由管道將輸入輸出至這個 Cmdlet。 |
輸出 |
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 Cmdlet 引發一個事件來回應另一個事件。這個函數中的命令會使用 Register-ObjectEvent Cmdlet 訂閱當建立新處理序時引發的 Windows Management Instrumentation (WMI) 事件,並使用此 Cmdlet 的 Action 參數呼叫 New-Event Cmdlet,讓後者建立新的事件。 因為 New-Event 引發的事件會自動新增到 Windows PowerShell 事件佇列,因此不需加以註冊。
請參閱