建立新的事件。

語法

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 事件佇列,因此不需加以註冊。






請參閱




目錄