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-EventSubscriber 및 Unregister-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 명령을 실행합니다.
참고 항목