Register-WmiEvent
WMI(Windows Management Instrumentation) 이벤트를 구독합니다.
구문
class (기본값)
Register-WmiEvent
[-Class] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
query
Register-WmiEvent
[-Query] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Description
Register-WmiEvent cmdlet은 로컬 컴퓨터 또는 원격 컴퓨터에서 WMI(Windows Management Instrumentation) 이벤트를 구독합니다.
구독된 WMI 이벤트가 발생하면 원격 컴퓨터에서 이벤트가 발생하더라도 로컬 세션의 이벤트 큐에 추가됩니다. 이벤트 큐에서 이벤트를 얻으려면 Get-Event cmdlet을 사용합니다.
Register-WmiEvent 매개 변수를 사용하여 원격 컴퓨터의 이벤트를 구독하고 큐에서 이벤트를 식별하는 데 도움이 되는 이벤트의 속성 값을 지정할 수 있습니다.
Action 매개 변수를 사용하여 구독 이벤트가 발생할 때 수행할 작업을 지정할 수도 있습니다.
이벤트를 구독하면 이벤트 구독자가 세션에 추가됩니다. 세션에서 이벤트 구독자를 얻으려면 Get-EventSubscriber cmdlet을 사용합니다. 구독을 취소하려면 세션에서 이벤트 구독자를 삭제하는 Unregister-Event cmdlet을 사용합니다.
Windows PowerShell 3.0에 도입된 새로운 CIM(일반 정보 모델) cmdlet은 WMI cmdlet과 동일한 작업을 수행합니다.
CIM cmdlet은 WSMan(WS-Management) 표준과 CIM 표준을 준수하므로 cmdlet은 동일한 기술을 사용하여 Windows 운영 체제를 실행하는 컴퓨터와 다른 운영 체제를 실행하는 컴퓨터를 관리할 수 있습니다.
Register-WmiEvent사용하는 대신 Register-CimIndicationEvent cmdlet을 사용하는 것이 좋습니다.
예제
예제 1: 클래스에서 생성된 이벤트 구독
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
이 명령은 Win32_ProcessStartTrace 클래스에서 생성된 이벤트를 구독합니다. 이 클래스는 프로세스가 시작될 때마다 이벤트를 발생합니다.
예제 2: 프로세스에 대한 만들기 이벤트 구독
PS C:\> Register-WmiEvent -Query "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'" -SourceIdentifier "WMIProcess" -MessageData "Test 01" -TimeOut 500
이 명령은 쿼리를 사용하여 Win32_process 인스턴스 만들기 이벤트를 구독합니다.
예제 3: 동작을 사용하여 이벤트에 응답
PS C:\> $action = { Get-History | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }
PS C:\> 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과 같은 작업 cmdlet을 사용하여 이벤트 작업을 관리할 수 있습니다.
자세한 내용은 about_Jobs 참조하세요.
예제 4: 원격 컴퓨터에서 이벤트 등록
PS C:\> Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
PS C:\> Get-Event -SourceIdentifier "Start"
이 예제에서는 Server01 원격 컴퓨터의 이벤트를 등록합니다.
WMI는 로컬 컴퓨터에 이벤트를 반환하고 현재 세션의 이벤트 큐에 저장합니다. 이벤트를 검색하려면 로컬 Get-Event 명령을 실행합니다.
매개 변수
-Action
이벤트를 처리하는 명령을 지정합니다. Action 매개 변수의 명령은 이벤트를 이벤트 큐로 보내는 대신 이벤트가 발생할 때 실행됩니다. 명령을 중괄호({ })로 묶어 스크립트 블록을 만듭니다.
Action 값에는 Action 스크립트 블록에 이벤트에 대한 정보를 제공하는 $Event, $EventSubscriber, $Sender, $EventArgs 및 $Args 자동 변수가 포함될 수 있습니다. 자세한 내용은 about_Automatic_Variables 참조하세요.
작업을 지정하면 register-WmiEvent
매개 변수 속성
| 형식: | ScriptBlock |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | 101 |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Class
구독할 이벤트를 지정합니다. 이벤트를 생성하는 WMI 클래스를 입력합니다. 모든 명령에는 클래스 또는 Query 매개 변수가 필요합니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
class
| Position: | 0 |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-ComputerName
명령이 실행되는 컴퓨터의 이름을 지정합니다. 기본값은 로컬 컴퓨터입니다.
NetBIOS 이름, IP 주소 또는 컴퓨터의 정규화된 도메인 이름을 입력합니다. 로컬 컴퓨터를 지정하려면 컴퓨터 이름, 점(.) 또는 localhost를 입력합니다.
이 매개 변수는 Windows PowerShell 원격을 사용하지 않습니다. 컴퓨터가 원격 명령을 실행하도록 구성되지 않은 경우에도 ComputerName 매개 변수를 사용할 수 있습니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | Cn |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Credential
이 작업을 수행할 수 있는 권한이 있는 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다.
User01 또는 Domain01\User01과 같은 사용자 이름을 입력하거나 Get-Credential cmdlet에서 생성된 개체와 같은 PSCredential 개체를 입력합니다. 사용자 이름을 입력하는 경우 이 cmdlet은 암호를 묻는 메시지를 표시합니다.
매개 변수 속성
| 형식: | PSCredential |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Forward
이 cmdlet은 이 구독에 대한 이벤트를 로컬 컴퓨터의 세션으로 보냅니다. 원격 컴퓨터 또는 원격 세션에서 이벤트를 등록할 때 이 매개 변수를 사용합니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-MaxTriggerCount
최대 트리거 수를 지정합니다.
매개 변수 속성
| 형식: | Int32 |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-MessageData
이 이벤트 구독과 연결할 추가 데이터를 지정합니다. 이 매개 변수의 값은 이 구독과 연결된 모든 이벤트의 MessageData 속성에 나타납니다.
매개 변수 속성
| 형식: | PSObject |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Namespace
WMI 클래스의 네임스페이스를 지정합니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | NS |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Query
WMI 이벤트 클래스(예: select * from __InstanceDeletionEvent)를 식별하는 WQL(WMI 쿼리 언어)의 쿼리를 지정합니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
query
| Position: | 0 |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-SourceIdentifier
구독에 대해 선택한 이름을 지정합니다. 선택한 이름은 현재 세션에서 고유해야 합니다. 기본값은 Windows PowerShell에서 할당하는 GUID입니다.
이 매개 변수의 값은 구독자 개체의 SourceIdentifier 속성 및 이 구독과 연결된 모든 이벤트 개체의 값에 나타납니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | 100 |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-SupportEvent
이 cmdlet이 이벤트 구독을 숨기고 있음을 나타냅니다. 현재 구독이 더 복잡한 이벤트 등록 메커니즘의 일부이며 독립적으로 검색해서는 안 되는 경우 이 매개 변수를 사용합니다.
SupportEvent 매개 변수를 사용하여 만든 구독을 보거나 취소하려면 Get-EventSubscriber 및 Unregister-Event cmdlet의 Force 매개 변수를 지정합니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Timeout
Windows PowerShell에서 이 명령이 완료되기를 기다리는 시간을 지정합니다.
기본값인 0은 시간 제한이 없음을 의미하며 Windows PowerShell이 무기한 대기합니다.
매개 변수 속성
| 형식: | Int64 |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | TimeoutMSec |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
CommonParameters
이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.
입력
None
개체를 이 cmdlet으로 파이프할 수 없습니다.
출력
None
이 cmdlet은 어떠한 출력도 생성하지 않습니다.
참고
Windows Vista 또는 이후 버전의 Windows 운영 체제에서 이 cmdlet을 사용하려면 관리자 권한으로 실행 옵션을 사용하여 Windows PowerShell을 시작합니다.
이벤트, 이벤트 구독 및 이벤트 큐는 현재 세션에만 존재합니다. 현재 세션을 닫으면 이벤트 큐가 삭제되고 이벤트 구독이 취소됩니다.