Condividi tramite


New-WinEvent

Crea un nuovo evento di Windows per il provider di eventi specificato.

Sintassi

Default (Impostazione predefinita)

New-WinEvent
    [-ProviderName] <String>
    [-Id] <Int32>
    [-Version <Byte>]
    [[-Payload] <Object[]>]
    [<CommonParameters>]

Descrizione

Il cmdlet New-WinEvent crea un evento Event Tracing for Windows (ETW) per un provider di eventi. È possibile usare questo cmdlet per aggiungere eventi ai canali ETW da PowerShell.

Esempio

Esempio 1 - Creare un nuovo evento

New-WinEvent -ProviderName Microsoft-Windows-PowerShell -Id 45090 -Payload @("Workflow", "Running")

Questo comando usa il cmdlet New-WinEvent per creare l'evento 45090 per il provider Microsoft-Windows-PowerShell.

Esempio 2: ottenere il modello per un evento

In questo esempio, Get-WinEvent viene usato per ottenere il modello per l'ID evento 8007 dal provider di eventi criteri di gruppo. Si noti che l'evento ha due formati.

Nella versione 0 il campo IsMachine è un valore booleano. Nella versione 1 il campo IsMachine è un valore intero senza segno.

(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.

La proprietà Description contiene il messaggio scritto nel registro eventi. Il valore %3 e %1 sono segnaposto per i valori passati nel modello. La stringa %3 viene sostituita con il valore passato al campo PrincipalSamName. La %1 stringa viene sostituita con il valore passato al campo PolicyElaspedTimeInSeconds .

Esempio 3: Creare un nuovo evento usando un modello con controllo delle versioni

In questo esempio viene illustrato come creare un evento usando una versione specifica del modello.

$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

Se i valori nel payload non corrispondono ai tipi nel modello, l'evento viene registrato ma il payload contiene un errore.

Parametri

-Id

Specifica un ID evento registrato nel provider di eventi.

Proprietà dei parametri

Tipo:Int32
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:2
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Payload

Il payload è una matrice di valori passati come argomenti posizionali al modello di evento. I valori vengono inseriti nel modello per costruire il messaggio per l'evento. Gli eventi possono avere più versioni del modello che usano formati diversi.

Se i valori nel payload non corrispondono ai tipi nel modello, l'evento viene registrato ma il payload contiene un errore.

Proprietà dei parametri

Tipo:

Object[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:3
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-ProviderName

Specifica il provider di eventi che scrive l'evento in un registro eventi, ad esempio "Microsoft-Windows-PowerShell". Un provider di eventi ETW è un'entità logica che scrive eventi in sessioni ETW.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:1
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Version

Specifica il numero di versione dell'evento. PowerShell converte il numero nel tipo byte richiesto. Il valore specifica la versione dell'evento quando vengono definite versioni diverse dello stesso evento.

Proprietà dei parametri

Tipo:Byte
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

None

Gli oggetti non possono essere inviati tramite pipe a questo cmdlet.

Output

None

Questo cmdlet non restituisce alcun output.

Note

Dopo che il provider scrive l'evento in un log eventi, è possibile usare il cmdlet Get-WinEvent per ottenere l'evento dal registro eventi.