New-WinEvent

지정된 이벤트 공급자에 대한 새 Windows 이벤트를 만듭니다.

구문

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

Description

이 cmdlet은 Windows 플랫폼에서만 사용할 수 있습니다.

이 cmdlet은 New-WinEvent 이벤트 공급자에 대한 ETW(Windows용 이벤트 추적) 이벤트를 만듭니다. 이 cmdlet을 사용하여 PowerShell에서 ETW 채널에 이벤트를 추가할 수 있습니다.

예제

예제 1 - 새 이벤트 만들기

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

이 명령은 cmdlet을 New-WinEvent 사용하여 Microsoft-Windows-PowerShell 공급자에 대한 이벤트 45090을 만듭니다.

예제 2 - 이벤트에 대한 템플릿 가져오기

이 예제에서는 Get-WinEvent 그룹 정책 이벤트 공급자에서 이벤트 ID 8007에 대한 템플릿을 가져오는 데 사용됩니다. 이벤트에는 두 가지 형식이 있습니다.

버전 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 속성에는 이벤트 로그에 기록되는 메시지가 포함됩니다. 값과 %1 값은 %3 템플릿에 전달된 값의 자리 표시자입니다. %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
Position:1
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Payload

페이로드는 이벤트 템플릿에 위치 인수로 전달되는 값의 배열입니다. 값은 이벤트에 대한 메시지를 생성하기 위해 템플릿에 삽입됩니다. 이벤트에는 다양한 형식을 사용하는 여러 템플릿 버전이 있을 수 있습니다.

페이로드의 값이 템플릿의 형식과 일치하지 않으면 이벤트가 기록되지만 페이로드에 오류가 포함됩니다.

형식:Object[]
Position:2
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ProviderName

이벤트 로그에 이벤트를 쓰는 이벤트 공급자(예: "Microsoft-Windows-PowerShell")를 지정합니다. ETW 이벤트 공급자는 ETW 세션에 이벤트를 쓰는 논리적 엔터티입니다.

형식:String
Position:0
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Version

이벤트의 버전 번호를 지정합니다. PowerShell은 숫자를 필요한 바이트 형식으로 변환합니다. 값은 동일한 이벤트의 다른 버전이 정의된 경우 이벤트의 버전을 지정합니다.

형식:Byte
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

None

개체를 이 cmdlet으로 파이프할 수 없습니다.

출력

None

이 cmdlet은 출력을 반환하지 않습니다.

참고

공급자가 이벤트를 이벤트 로그에 쓴 후 cmdlet을 Get-WinEvent 사용하여 이벤트 로그에서 이벤트를 가져올 수 있습니다.