New-WinEvent
Crea un nuovo evento di Windows per il provider di eventi specificato.
Sintassi
New-WinEvent
[-ProviderName] <String>
[-Id] <Int32>
[-Version <Byte>]
[[-Payload] <Object[]>]
[<CommonParameters>]
Descrizione
Questo cmdlet è disponibile solo nella piattaforma Windows.
Il New-WinEvent
cmdlet 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 New-WinEvent
cmdlet per creare l'evento 45090 per il provider Microsoft-Windows-PowerShell.
Esempio 2: ottenere il modello per un evento
In questo esempio viene Get-WinEvent
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 %3
valore e %1
sono segnaposto per i valori passati nel modello. La %3
stringa 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.
Tipo: | Int32 |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | Object[] |
Posizione: | 2 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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 nelle sessioni ETW.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | Byte |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
None
Non è possibile inviare tramite pipe oggetti a questo cmdlet.
Output
None
Questo cmdlet non restituisce output.
Note
Dopo che il provider scrive l'evento in un log eventi, è possibile usare il Get-WinEvent
cmdlet per ottenere l'evento dal registro eventi.