New-WinEvent

Hiermee maakt u een nieuwe Windows-gebeurtenis voor de opgegeven gebeurtenisprovider.

Syntax

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

Description

Deze cmdlet is alleen beschikbaar op het Windows-platform.

De New-WinEvent cmdlet maakt een gebeurtenistracering voor Windows (ETW) voor een gebeurtenisprovider. U kunt deze cmdlet gebruiken om gebeurtenissen toe te voegen aan ETW-kanalen vanuit PowerShell.

Voorbeelden

Voorbeeld 1: een nieuwe gebeurtenis maken

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

Met deze opdracht wordt de New-WinEvent cmdlet gebruikt om gebeurtenis 45090 te maken voor de Microsoft-Windows-PowerShell-provider.

Voorbeeld 2: de sjabloon voor een gebeurtenis ophalen

In dit voorbeeld Get-WinEvent wordt de sjabloon voor gebeurtenis-id 8007 opgehaald van de gebeurtenisprovider Groepsbeleid. U ziet dat de gebeurtenis twee indelingen heeft.

In versie 0 is het veld IsMachine een Booleaanse waarde. In versie 1 is het veld IsMachine een niet-ondertekende geheel getalwaarde.

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

De eigenschap Beschrijving bevat het bericht dat naar het gebeurtenislogboek wordt geschreven. De %3 en %1 waarde zijn tijdelijke aanduidingen voor de waarden die zijn doorgegeven aan de sjabloon. De %3 tekenreeks wordt vervangen door de waarde die wordt doorgegeven aan het veld PrincipalSamName . De %1 tekenreeks wordt vervangen door de waarde die wordt doorgegeven aan het veld PolicyElaspedTimeInSeconds .

Voorbeeld 3: een nieuwe gebeurtenis maken met behulp van een geversiede sjabloon

In dit voorbeeld ziet u hoe u een gebeurtenis maakt met behulp van een specifieke sjabloonversie.

$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

Als de waarden in de nettolading niet overeenkomen met de typen in de sjabloon, wordt de gebeurtenis geregistreerd, maar bevat de nettolading een fout.

Parameters

-Id

Hiermee geeft u een gebeurtenis-id op die is geregistreerd in de gebeurtenisprovider.

Type:Int32
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Payload

De nettolading is een matrix met waarden die als positionele argumenten worden doorgegeven aan de gebeurtenissjabloon. De waarden worden in de sjabloon ingevoegd om het bericht voor de gebeurtenis samen te stellen. Gebeurtenissen kunnen meerdere sjabloonversies hebben die verschillende indelingen gebruiken.

Als de waarden in de nettolading niet overeenkomen met de typen in de sjabloon, wordt de gebeurtenis geregistreerd, maar bevat de nettolading een fout.

Type:Object[]
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ProviderName

Hiermee geeft u de gebeurtenisprovider op die de gebeurtenis naar een gebeurtenislogboek schrijft, zoals 'Microsoft-Windows-PowerShell'. Een ETW-gebeurtenisprovider is een logische entiteit die gebeurtenissen naar ETW-sessies schrijft.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Version

Hiermee geeft u het versienummer van de gebeurtenis. PowerShell converteert het getal naar het vereiste bytetype. De waarde geeft de versie van de gebeurtenis op wanneer verschillende versies van dezelfde gebeurtenis worden gedefinieerd.

Type:Byte
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

None

U kunt geen objecten doorsluisen naar deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet retourneert geen uitvoer.

Notities

Nadat de provider de gebeurtenis naar een gebeurtenislogboek heeft geschreven, kunt u de Get-WinEvent cmdlet gebruiken om de gebeurtenis op te halen uit het gebeurtenislogboek.