New-Event
建立新事件。
語法
Default (預設值)
New-Event
[-SourceIdentifier] <String>
[[-Sender] <PSObject>]
[[-EventArguments] <PSObject[]>]
[[-MessageData] <PSObject>]
[<CommonParameters>]
Description
指令長會 New-Event 建立一個新的自訂事件。
你可以使用自訂事件通知使用者程式狀態變更,以及程式能偵測到的任何變更,包括硬體或系統狀況、應用程式狀態、磁碟狀態、網路狀態,或背景工作完成。
自訂事件在被提出時會自動加入你的工作階段事件佇列;你不需要訂閱它們。 不過,如果你想將事件轉發到本地會話或指定回應事件的動作,請使用 Register-EngineEvent cmdlet 訂閱自訂事件。
當你訂閱自訂活動時,活動訂閱者會被加入你的會話中。 如果你用 Unregister-Event cmdlet 取消活動訂閱,活動訂閱者和自訂事件會從會話中刪除。 如果你沒有訂閱自訂事件,要刪除該事件,必須更改程式條件或關閉 PowerShell 會話。
範例
範例 1:在事件佇列中建立新事件
PS C:\> New-Event -SourceIdentifier Timer -Sender Windows.Timer -MessageData "Test"
此指令會在 PowerShell 事件佇列中建立一個新事件。 它使用Windows。計時器物件來發送事件。
範例 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管理儀器(WMI)事件。 指令會使用指令檔的 Action 參數來呼叫指令 New-Event 檔,從而產生新的事件。
因為引發 New-Event 的事件會自動加入 PowerShell 事件佇列,因此你不需要為該事件註冊。
參數
-EventArguments
指定一個包含事件選項的物件。
參數屬性
| 類型: | PSObject[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 2 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-MessageData
指定與事件相關的額外資料。 此參數的值會出現在事件物件的 MessageData 屬性中。
參數屬性
| 類型: | PSObject |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 3 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Sender
指定引發事件的物件。 預設是 PowerShell 引擎。
參數屬性
| 類型: | PSObject |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-SourceIdentifier
指定新事件的名稱。 此參數是必需的,且在會話中必須唯一。
此參數的值會出現在事件的 SourceIdentifier 屬性中。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
None
您不能將物件透過管道傳送到此 Cmdlet。
輸出
PSEventArgs
備註
Linux 或 macOS 平台沒有事件來源。
新的自訂事件、事件訂閱和事件佇列只存在於當前會話中。 如果您關閉當前的會話,事件佇列將被丟棄,事件訂閱將被取消。