WMI(Windows Management Instrument) 이벤트에 가입합니다.

구문

Register-WmiEvent [-Class] <string> [[-SourceIdentifier] <string>] [[-Action] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-Forward] [-MessageData <psobject>] [-Namespace <string>] [-SupportEvent] [-Timeout <Int64>] [<CommonParameters>]

Register-WmiEvent [-Query] <string> [[-SourceIdentifier] <string>] [[-Action] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-Forward] [-MessageData <psobject>] [-Namespace <string>] [-SupportEvent] [-Timeout <Int64>] [<CommonParameters>]

설명

Register-WmiEvent cmdlet은 로컬 또는 원격 컴퓨터의 WMI 이벤트에 가입합니다.

가입된 WMI 이벤트가 발생하면 이벤트가 원격 컴퓨터에서 발생한 경우에도 로컬 세션의 이벤트 큐에 추가됩니다. 이벤트 큐의 이벤트를 가져오려면 Get-Event cmdlet을 사용합니다.

Register-WmiEvent의 매개 변수를 사용하여 원격 컴퓨터의 이벤트에 가입하고 큐의 이벤트를 식별하는 데 사용할 수 있는 이벤트의 속성 값을 지정할 수 있습니다. 또한 Action 매개 변수를 사용하면 가입된 이벤트가 발생할 경우 수행할 작업을 지정할 수 있습니다.

이벤트에 가입하면 이벤트 가입자가 세션에 추가됩니다. 세션의 이벤트 가입자를 가져오려면 Get-EventSubscriber cmdlet을 사용합니다. 가입을 취소하려면 Unregister-Event cmdlet을 사용하여 세션에서 이벤트 가입자를 삭제합니다.

매개 변수

-Action <scriptblock>

이벤트를 처리하는 명령을 지정합니다. 이벤트가 발생하면 해당 이벤트를 이벤트 큐로 보내는 대신 Action 매개 변수에 있는 명령이 실행됩니다. 명령을 중괄호( { } )로 묶어 스크립트 블록을 만듭니다.

Action 매개 변수의 값은 이벤트에 대한 정보를 Action 스크립트 블록에 제공하는 $Event, $EventSubscriber, $Sender, $SourceEventArgs 및 $SourceArgs 자동 변수를 포함할 수 있습니다. 자세한 내용은 about_Automatic_Variables를 참조하십시오.

작업을 지정하면 Register-WmiEvent가 해당 작업을 나타내는 이벤트 작업 개체를 반환합니다. Job 명사가 포함된 cmdlet(Job cmdlet)을 사용하여 이벤트 작업을 관리할 수 있습니다.

필수 여부

false

위치

102

기본값

The event is added to the event queue.

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Class <string>

가입할 이벤트를 지정합니다. 이벤트를 생성하는 WMI 클래스를 입력합니다. Class 또는 Query 매개 변수는 모든 명령에 필요합니다.

필수 여부

true

위치

1

기본값

없음

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-ComputerName <string>

원격 컴퓨터를 지정합니다. 기본값은 로컬 컴퓨터입니다. NetBIOS 이름, IP 주소 또는 정규화된 도메인 이름을 입력합니다.

필수 여부

false

위치

named

기본값

Local computer

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Credential <PSCredential>

이 작업을 수행할 수 있는 권한을 가진 사용자 계정을 지정합니다. "User01" 또는 "Domain01\User01"과 같은 사용자 이름을 입력합니다. 또는 Get-Credential cmdlet에서 반환된 개체와 같은 PSCredential 개체를 입력합니다. 사용자 이름을 입력하면 암호를 묻는 메시지가 표시됩니다.

필수 여부

false

위치

named

기본값

The credentials of the current user

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Forward

이 가입에 대한 이벤트를 로컬 컴퓨터의 세션으로 보냅니다. 원격 컴퓨터 또는 원격 세션에서 이벤트를 등록해야 하는 경우 이 매개 변수를 사용합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-MessageData <psobject>

이 이벤트 가입과 연결할 추가 데이터를 지정합니다. 이 매개 변수의 값은 이 가입과 연결된 모든 이벤트의 MessageData 속성에 나타납니다.

필수 여부

false

위치

named

기본값

None. The MessageData property is NULL.

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Namespace <string>

WMI 클래스의 네임스페이스를 지정합니다.

필수 여부

false

위치

named

기본값

없음

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Query <string>

WMI 이벤트 클래스를 식별하는 쿼리를 WQL(WMI 쿼리 언어)로 지정합니다(예: "select * from __InstanceDeletionEvent").

필수 여부

true

위치

1

기본값

없음

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-SourceIdentifier <string>

가입에 대해 선택한 이름을 지정합니다. 선택한 이름은 현재 세션에서 고유해야 합니다. 기본값은 Windows PowerShell이 할당하는 GUID입니다.

이 매개 변수의 값은 가입자 개체 및 이 가입과 연결된 모든 이벤트 개체의 SourceIdentifier 속성의 값에 나타납니다.

필수 여부

false

위치

101

기본값

GUID

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-SupportEvent

이벤트 가입을 숨깁니다. 현재 가입이 더욱 복잡한 이벤트 등록 메커니즘의 일부이고 독립적으로 검색되지 않아야 하는 경우 이 매개 변수를 사용합니다.

SupportEvent 매개 변수를 사용하여 만들어진 가입을 보거나 취소하려면 Get-EventSubscriberUnregister-Event cmdlet의 Force 매개 변수를 사용합니다.

필수 여부

false

위치

named

기본값

False

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Timeout <Int64>

Windows PowerShell에서 이 명령이 완료될 때까지 대기하는 시간을 결정합니다.

기본값 0은 제한 시간이 없고 Windows PowerShell이 무한히 대기한다는 것을 의미합니다.

필수 여부

false

위치

named

기본값

0

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_Commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

없음

개체를 Register-WmiEvent로 파이프할 수 없습니다.

출력

없음

이 cmdlet은 어떠한 출력도 생성하지 않습니다.

참고

Windows Vista 이상에서 이 cmdlet을 사용하려면 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작합니다.

이벤트, 이벤트 가입 및 이벤트 큐는 현재 세션에서만 존재합니다. 현재 세션을 닫으면 이벤트 큐가 삭제되고 이벤트 가입이 취소됩니다.

예 1

C:\PS>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "ProcessStarted"

설명
-----------
이 명령은 Win32_ProcessStartTrace 클래스에서 생성한 이벤트에 가입합니다. 이 클래스는 프로세스가 시작될 때마다 이벤트를 발생시킵니다.






예 2

C:\PS>register-wmiEvent -query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -sourceIdentifier "WMIProcess" -messageData "Test 01" -timeout 500

설명
-----------
이 명령은 쿼리를 사용하여 Win32_process 인스턴스 생성 이벤트에 가입합니다.






예 3

C:\PS>$action = { get-history | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }

C:\PS> register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "ProcessStarted" -action $action

Id    Name            State      HasMoreData   Location  Command
--    ----            -----      -----------   --------  -------
1     ProcessStarted  NotStarted False                   get-history | where {...

설명
-----------
이 예에서는 이벤트에 응답하는 작업을 사용하는 방법을 보여 줍니다. 이 예에서는 프로세스가 시작되면 현재 세션의 모든 Start-Process 명령이 XML 파일에 기록됩니다. 

Action 매개 변수를 사용하는 경우 Register-WmiEvent는 이벤트 작업을 나타내는 백그라운드 작업을 반환합니다. Get-Job 및 Receive-Job과 같은 Job cmdlet을 사용하여 이벤트 작업을 관리할 수 있습니다.

자세한 내용은 about_Jobs를 참조하십시오.






예 4

C:\PS>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "Start" -computername Server01 

C:\PS> get-event -sourceIdentifier "Start"

설명
-----------
이 예에서는 Server01 원격 컴퓨터의 이벤트를 등록합니다. 

WMI는 이벤트를 로컬 컴퓨터에 반환하고 현재 세션의 이벤트 큐에 저장합니다. 이벤트를 검색하려면 로컬 Get-Event 명령을 실행합니다.






참고 항목




목차