Windows PowerShell 엔진 및 New-Event cmdlet에서 생성한 이벤트에 가입합니다.
구문
Register-EngineEvent [-SourceIdentifier] <string> [[-Action] <scriptblock>] [-Forward] [-MessageData <psobject>] [-SupportEvent] [<CommonParameters>]
설명
Register-EngineEvent cmdlet은 Windows PowerShell 엔진 및 New-Event cmdlet에서 생성한 이벤트에 가입합니다. SourceIdentifier 매개 변수를 사용하여 이벤트를 지정합니다.
이 cmdlet을 사용하면 "종료" 엔진 이벤트 및 New-Event cmdlet에서 생성된 이벤트에 가입할 수 있습니다. 이러한 이벤트는 별도로 가입하지 않아도 세션의 이벤트 큐에 자동으로 추가됩니다. 그러나 가입을 하면 이벤트를 전달하고, 이벤트에 응답하는 작업을 지정하고, 가입을 취소할 수 있습니다.
가입된 이벤트가 발생하면 세션의 이벤트 큐에 추가됩니다. 이벤트 큐의 이벤트를 가져오려면 Get-Event cmdlet을 사용합니다.
이벤트에 가입하면 이벤트 가입자가 세션에 추가됩니다. 세션의 이벤트 가입자를 가져오려면 Get-EventSubscriber cmdlet을 사용합니다. 가입을 취소하려면 Unregister-Event cmdlet을 사용하여 세션에서 이벤트 가입자를 삭제합니다.
매개 변수
-Action <scriptblock>
이벤트를 처리할 명령을 지정합니다. 이벤트가 발생하면 해당 이벤트를 이벤트 큐로 보내는 대신 Action에 있는 명령이 실행됩니다. 명령을 중괄호( { } )로 묶어 스크립트 블록을 만듭니다.
Action 매개 변수의 값은 이벤트에 대한 정보를 Action 스크립트 블록에 제공하는 $Event, $EventSubscriber, $Sender, $SourceEventArgs 및 $SourceArgs 자동 변수를 포함할 수 있습니다. 자세한 내용은 about_Automatic_Variables를 참조하십시오.
작업을 지정하면 Register-EngineEvent가 해당 작업을 나타내는 이벤트 작업 개체를 반환합니다. Job cmdlet을 사용하여 이벤트 작업을 관리할 수 있습니다.
필수 여부 |
false |
위치 |
102 |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Forward
이 가입에 대한 이벤트를 로컬 컴퓨터의 세션으로 보냅니다. 원격 컴퓨터 또는 원격 세션에서 이벤트를 등록해야 하는 경우 이 매개 변수를 사용합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
False |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-MessageData <psobject>
이벤트와 연결된 추가 데이터를 지정합니다. 이 매개 변수의 값은 이벤트 개체의 MessageData 속성에 표시됩니다.
필수 여부 |
false |
위치 |
named |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-SourceIdentifier <string>
가입할 이벤트의 원본 식별자를 지정합니다. 원본 식별자는 현재 세션에서 고유해야 합니다. 이 매개 변수는 필수 사항입니다.
이 매개 변수의 값은 가입자 개체 및 이 가입과 연결된 모든 이벤트 개체의 SourceIdentifier 속성의 값에 나타납니다.
필수 여부 |
true |
위치 |
101 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-SupportEvent
이벤트 가입을 숨깁니다. 현재 가입이 더욱 복잡한 이벤트 등록 메커니즘의 일부이고 독립적으로 검색되지 않아야 하는 경우 이 매개 변수를 사용합니다.
SupportEvent 매개 변수를 사용하여 만들어진 가입을 보거나 취소하려면 Get-EventSubscriber 및 Unregister-Event cmdlet의 Force 매개 변수를 사용합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
False |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_Commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
없음 입력을 Register-EngineEvent로 파이프할 수 없습니다. |
출력 |
없음 또는 System.Management.Automation.PSEventJob Action 매개 변수를 사용하는 경우 Register-EngineEvent는 System.Management.Automation.PSEventJob 개체를 반환합니다. 그렇지 않으면 아무 출력도 생성하지 않습니다. |
참고
이벤트, 이벤트 가입 및 이벤트 큐는 현재 세션에서만 존재합니다. 현재 세션을 닫으면 이벤트 큐가 삭제되고 이벤트 가입이 취소됩니다.
예 1
C:\PS>$s = new-pssession -computername Server01, Server02 C:\PS> invoke-command -session $s { Register-EngineEvent -sourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -forward } 설명 ----------- 이 명령은 두 원격 컴퓨터에서 Windows PowerShell 엔진 이벤트를 등록합니다. 첫 번째 명령은 각 원격 컴퓨터에 PSSession을 만듭니다. 두 번째 명령은 Invoke-Command cmdlet을 사용하여 원격 세션에서 Register-EngineEvent 명령을 실행합니다. Register-EngineEvent 명령은 SourceIdentifier 매개 변수를 사용하여 이벤트를 식별하며 Forward 매개 변수를 사용하여 이벤트를 원격 세션에서 로컬 세션으로 전달합니다.
예 2
C:\PS>$j = register-engineEvent -sourceIdentifier PowerShell.ProcessCreated -action { $processName | add-content processLog.txt } C:\PS> get-event C:\PS> $results = $j | receive-job C:\PS> unregister-event PowerShell.ProcessCreated 설명 ----------- 이 명령은 Job cmdlet을 사용하여 Action 매개 변수를 사용할 때 Register-EngineEvent가 반환하는 이벤트 작업 개체를 관리하는 방법을 보여 줍니다. 이벤트 작업도 다른 Windows PowerShell 작업과 같이 관리됩니다. 자세한 내용은 about_jobs를 참조하십시오. 이 예에서는 Receive-Job cmdlet을 사용하여 작업 결과를 가져옵니다. 세션에서 작업을 삭제하려면 Remove-Job을 사용합니다. 이벤트 가입을 취소하려면 Unregister-Event cmdlet을 사용합니다. 이벤트 큐의 이벤트를 삭제하려면 Remove-Event를 사용합니다.
참고 항목