Get-Event
取得事件佇列中的事件。
Syntax
Get-Event
[[-SourceIdentifier] <String>]
[<CommonParameters>]
Get-Event
[-EventIdentifier] <Int32>
[<CommonParameters>]
Description
Cmdlet Get-Event
會取得目前會話之 PowerShell 事件佇列中的事件。 您可以取得所有事件,或使用 EventIdentifier 或 SourceIdentifier 參數來指定事件。
發生事件時,它會新增到事件佇列。 事件佇列包含您已註冊的事件、使用 New-Event
Cmdlet 建立的事件,以及 PowerShell 結束時引發的事件。 您可以使用 Get-Event
或 Wait-Event
來取得事件。
這個 Cmdlet 不會從事件檢視器記錄檔取得事件。 若要取得這些事件,請使用 Get-WinEvent
或 Get-EventLog
。
範例
範例 1︰取得所有事件
PS C:\> Get-Event
此命令會取得事件佇列中所有的事件。
範例 2︰依來源識別碼取得事件
PS C:\> Get-Event -SourceIdentifier "PowerShell.ProcessCreated"
此命令會取得 SourceIdentifier 屬性值是 PowerShell.ProcessCreated 的事件。
範例 3︰根據事件產生時間取得事件
PS C:\> $Events = Get-Event
PS C:\> $Events[0] | Format-List -Property *
ComputerName :
RunspaceId : c2153740-256d-46c0-a57c-b805917d1b7b
EventIdentifier : 1
Sender : System.Management.ManagementEventWatcher
SourceEventArgs : System.Management.EventArrivedEventArgs
SourceArgs : {System.Management.ManagementEventWatcher, System.Management.EventArrivedEventArgs}
SourceIdentifier : ProcessStarted
TimeGenerated : 11/13/2008 12:09:32 PM
MessageData : PS C:\> Get-Event | Where {$_.TimeGenerated -ge "11/13/2008 12:15:00 PM"}
ComputerName :
RunspaceId : c2153740-256d-46c0-a57c-b8059325d1a0
EventIdentifier : 1
Sender : System.Management.ManagementEventWatcher
SourceEventArgs : System.Management.EventArrivedEventArgs
SourceArgs : {System.Management.ManagementEventWatcher, System.Management.EventArrivedEventArgs}
SourceIdentifier : ProcessStarted
TimeGenerated : 11/13/2008 12:15:00 PM
MessageData :
這個範例示範如何使用 SourceIdentifier 以外的屬性來取得事件。
第一個命令會取得事件佇列中的所有事件,並將其儲存在變數中 $Events
。
第二個命令會使用陣列表示法,在變數的 $Events
陣列中取得第一個 (0 索引) 事件。 此命令會使用管線運算符 (|
) 將事件傳送至 Format-List
命令,以顯示清單中事件的所有屬性。 這可讓您檢視事件物件的屬性。
第三個命令會示範如何使用 Where-Object
Cmdlet,根據產生事件的時間取得事件。
範例 4︰依識別碼取得事件
PS C:\> Get-Event -EventIdentifier 2
此命令取得事件識別碼為 2 的事件。
參數
-EventIdentifier
指定此 Cmdlet 用以取得事件的事件識別碼。
Type: | Int32 |
Aliases: | Id |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SourceIdentifier
指定此 Cmdlet 用以取得事件的來源識別碼。 預設為事件佇列中的所有事件。 不允許使用萬用字元。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
輸入
None
您無法使用管線傳送輸入至此 Cmdlet。
輸出
Get-Event
會針對每個事件傳回 PSEventArgs 物件。 如果要查看此物件的描述,請輸入 Get-Help Get-Event -Full
,並參閱說明主題的<附註>一節。
備註
Linux 或macOS平台上沒有可用的事件來源。
事件、事件訂閱與事件佇列僅存在目前工作階段中。 若關閉目前工作階段,便會捨棄事件佇列,並取消事件訂閱。
Cmdlet 會 Get-Event
傳回 PSEventArgs 物件, (System.Management.Automation.PSEventArgs) 下列屬性:
ComputerName。 發生事件之電腦的名稱。 從遠端電腦轉送事件時,才會填入這個屬性值。
RunspaceId。 可唯一識別發生事件之工作階段的 GUID。 從遠端電腦轉送事件時,才會填入這個屬性值。
EventIdentifier。 可唯一識別目前工作階段中之事件通知的整數 (Int32)。
Sender。 產生事件的物件。 在 Action 參數的值中
$Sender
,自動變數包含傳送者物件。SourceEventArgs。 衍生自 EventArgs 的第一個參數 (如果存在的話)。 例如,在簽章格式為 Object sender、 Timers.ElapsedEventArgs e 的定時器經過事件中, SourceEventArgs 屬性會包含 Timers.ElapsedEventArgs。 在 Action 參數的值中
$EventArgs
,自動變數包含此值。SourceArgs。 原始事件簽章的所有參數。 針對標準事件簽章,
$Args[0]
代表發件者,並$Args[1]
代表 SourceEventArgs。 在 Action 參數的值中$Args
,自動變數包含此值。SourceIdentifier。 識別事件訂閱的字串。 在 Action 參數的值中,自動變數的 SourceIdentifier 屬性
$Event
包含此值。TimeGenerated。 代表產生該事件時間的 DateTime 物件。 在 Action 參數的值中,自動變數的
$Event
TimeGenerated 屬性包含此值。MessageData。 與事件訂閱相關聯的資料。 使用者註冊事件時,會指定此資料。 在 Action 參數的值中,自動變數的
$Event
MessageData 屬性包含此值。