New-WinEvent
指定したイベント プロバイダーの新しい Windows イベントを作成します。
構文
Default (既定)
New-WinEvent
[-ProviderName] <String>
[-Id] <Int32>
[-Version <Byte>]
[[-Payload] <Object[]>]
[<CommonParameters>]
説明
このコマンドレットは、Windows プラットフォームでのみ使用できます。
New-WinEvent コマンドレットは、イベント プロバイダーの Windows イベント トレーシング (ETW) イベントを作成します。
このコマンドレットを使用して、PowerShell から ETW チャネルにイベントを追加できます。
例
例 1 - 新しいイベントを作成する
New-WinEvent -ProviderName Microsoft-Windows-PowerShell -Id 45090 -Payload @("Workflow", "Running")
このコマンドでは、New-WinEvent コマンドレットを使用して、MicrosoftWindows-PowerShell プロバイダーのイベント 45090 を作成します。
例 2 - イベントのテンプレートを取得する
この例では、Get-WinEvent を使用して、グループ ポリシー イベント プロバイダーからイベント ID 8007 のテンプレートを取得します。 イベントには 2 つの形式があることに注意してください。
バージョン 0 では、IsMachine フィールドはブール値です。 バージョン 1 では、IsMachine フィールドは符号なし整数値です。
(Get-WinEvent -ListProvider Microsoft-Windows-GroupPolicy).Events | Where-Object Id -EQ 8007
Id : 8007
Version : 0
LogLink : System.Diagnostics.Eventing.Reader.EventLogLink
Level : System.Diagnostics.Eventing.Reader.EventLevel
Opcode : System.Diagnostics.Eventing.Reader.EventOpcode
Task : System.Diagnostics.Eventing.Reader.EventTask
Keywords : {}
Template : <template xmlns="http://schemas.microsoft.com/win/2004/08/events">
<data name="PolicyElaspedTimeInSeconds" inType="win:UInt32" outType="xs:unsignedInt"/>
<data name="ErrorCode" inType="win:UInt32" outType="win:HexInt32"/>
<data name="PrincipalSamName" inType="win:UnicodeString" outType="xs:string"/>
<data name="IsMachine" inType="win:Boolean" outType="xs:boolean"/>
<data name="IsConnectivityFailure" inType="win:Boolean" outType="xs:boolean"/>
</template>
Description : Completed periodic policy processing for user %3 in %1 seconds.
Id : 8007
Version : 1
LogLink : System.Diagnostics.Eventing.Reader.EventLogLink
Level : System.Diagnostics.Eventing.Reader.EventLevel
Opcode : System.Diagnostics.Eventing.Reader.EventOpcode
Task : System.Diagnostics.Eventing.Reader.EventTask
Keywords : {}
Template : <template xmlns="http://schemas.microsoft.com/win/2004/08/events">
<data name="PolicyElaspedTimeInSeconds" inType="win:UInt32" outType="xs:unsignedInt"/>
<data name="ErrorCode" inType="win:UInt32" outType="win:HexInt32"/>
<data name="PrincipalSamName" inType="win:UnicodeString" outType="xs:string"/>
<data name="IsMachine" inType="win:UInt32" outType="xs:unsignedInt"/>
<data name="IsConnectivityFailure" inType="win:Boolean" outType="xs:boolean"/>
</template>
Description : Completed periodic policy processing for user %3 in %1 seconds.
Description プロパティには、イベント ログに書き込まれるメッセージが含まれています。
%3 と %1 の値は、テンプレートに渡される値のプレースホルダーです。
%3 文字列は、PrincipalSamName フィールドに渡された値に置き換えられます。
%1文字列は、PolicyElaspedTimeInSeconds フィールドに渡された値に置き換えられます。
例 3 - バージョン管理されたテンプレートを使用して新しいイベントを作成する
この例では、特定のテンプレート バージョンを使用してイベントを作成する方法を示します。
$Payload = @(300, [uint32]'0x8001011f', $Env:USERNAME, 0, 1)
New-WinEvent -ProviderName Microsoft-Windows-GroupPolicy -Id 8007 -Version 1 -Payload $Payload
Get-WinEvent -ProviderName Microsoft-Windows-GroupPolicy -MaxEvents 1
ProviderName: Microsoft-Windows-GroupPolicy
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
5/4/2022 8:40:24 AM 8007 Information Completed periodic policy processing for user User1 in 300 seconds
ペイロード内の値がテンプレート内の型と一致しない場合、イベントはログに記録されますが、ペイロードにエラーが含まれています。
パラメーター
-Id
イベント プロバイダーに登録されているイベント ID を指定します。
パラメーターのプロパティ
| 型: | Int32 |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | 1 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Payload
ペイロードは、イベント テンプレートに位置引数として渡される値の配列です。 値は、イベントのメッセージを作成するためにテンプレートに挿入されます。 イベントには、異なる形式を使用する複数のテンプレート バージョンを含めることができます。
ペイロード内の値がテンプレート内の型と一致しない場合、イベントはログに記録されますが、ペイロードにエラーが含まれています。
パラメーターのプロパティ
| 型: | Object[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | 2 |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ProviderName
イベント をイベント ログに書き込むイベント プロバイダー ("Microsoft-Windows-PowerShell" など) を指定します。 ETW イベント プロバイダーは、ETW セッションにイベントを書き込む論理エンティティです。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Version
イベントのバージョン番号を指定します。 PowerShell は、数値を必要なバイト型に変換します。 この値は、同じイベントの異なるバージョンが定義されている場合のイベントのバージョンを指定します。
パラメーターのプロパティ
| 型: | Byte |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
入力
None
このコマンドレットにオブジェクトをパイプすることはできません。
出力
None
このコマンドレットは出力を返しません。
メモ
プロバイダーがイベント ログにイベントを書き込んだ後、Get-WinEvent コマンドレットを使用してイベント ログからイベントを取得できます。