Register-EngineEvent
Windows PowerShell 엔진 및 New-Event cmdlet에서 생성되는 이벤트를 구독합니다.
구문
Default (기본값)
Register-EngineEvent
[-SourceIdentifier] <String>
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Description
Register-EngineEvent cmdlet은 Windows PowerShell 엔진 및 New-Event cmdlet에서 생성된 이벤트를 구독합니다. SourceIdentifier 매개 변수를 사용하여 이벤트를 지정합니다.
이 cmdlet을 사용하여 Exiting 엔진 이벤트 및 New-Event cmdlet에 의해 생성된 이벤트를 구독할 수 있습니다. 이러한 이벤트는 구독하지 않고 세션의 이벤트 큐에 자동으로 추가됩니다. 그러나 구독을 사용하면 이벤트를 전달하고, 이벤트에 응답하는 작업을 지정하고, 구독을 취소할 수 있습니다.
구독된 이벤트가 발생하면, 해당 이벤트는 세션 내의 이벤트 큐에 추가됩니다. 이벤트 큐에서 이벤트를 얻으려면 Get-Event cmdlet을 사용합니다.
이벤트를 구독하면 이벤트 구독자가 세션에 추가됩니다. 세션에서 이벤트 구독자를 얻으려면 Get-EventSubscriber cmdlet을 사용합니다. 구독을 취소하려면 세션에서 이벤트 구독자를 삭제하는 Unregister-Event cmdlet을 사용합니다.
예제
예제 1: 원격 컴퓨터에 PowerShell 엔진 이벤트 등록
PS C:\> $S = New-PSSession -ComputerName "Server01, Server02"
PS C:\> 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: Exiting 이벤트가 발생할 때 지정된 작업 수행
PS C:\> Register-EngineEvent -SourceIdentifier PowerShell.Exiting -SupportEvent -Action {
Get-History | Export-Clixml $Home\history.clixml
}
이 명령은 PowerShell.Exiting 이벤트가 발생할 때 Register-EngineEvent를 실행하여 특정 작업을 수행하는 방법을 보여 줍니다. SupportEvent 매개 변수가 추가되어 이벤트 구독을 숨깁니다. 이 경우 Windows PowerShell이 종료되면 종료 세션의 명령 기록이 XML 형식으로 사용자의 $Home 디렉터리에 있는 파일 이름 및 경로로 내보내집니다.
매개 변수
-Action
이벤트를 처리하는 명령을 지정합니다. 동작의 명령은 이벤트를 이벤트 큐로 보내는 대신 이벤트가 발생할 때 실행될 있습니다. 명령을 중괄호({ })로 묶어 스크립트 블록을 만듭니다.
Action 매개 변수의 값에는 이벤트에 대한 정보를 Action 스크립트 블록에 제공하는 $Event, $EventSubscriber, $Sender, $EventArgs 및 $Args 자동 변수가 포함될 수 있습니다. 자세한 내용은 about_Automatic_Variables(https://go.microsoft.com/fwlink/?LinkID=113212)를 참조하세요.
작업을 지정하면 register-EngineEvent
매개 변수 속성
| 형식: | ScriptBlock |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | 101 |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Forward
cmdlet이 이 구독에 대한 이벤트를 로컬 컴퓨터의 세션으로 보낸다는 것을 나타냅니다. 원격 컴퓨터 또는 원격 세션에서 이벤트를 등록할 때 이 매개 변수를 사용합니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-MaxTriggerCount
최대 트리거 수를 지정합니다.
Action 매개 변수의 값에는 이벤트에 대한 정보를 Action 스크립트 블록에 제공하는 $Event, $EventSubscriber, $Sender, $EventArgs 및 $Args 자동 변수가 포함될 수 있습니다. 자세한 내용은 about_Automatic_Variables(https://go.microsoft.com/fwlink/?LinkID=113212)를 참조하세요.
작업을 지정하면 register-EngineEvent
매개 변수 속성
| 형식: | 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 |
-SourceIdentifier
구독할 이벤트의 원본 식별자를 지정합니다. 원본 식별자는 현재 세션에서 고유해야 합니다. 이 매개 변수는 필수입니다.
이 매개 변수의 값은 구독자 개체의 SourceIdentifier 속성 및 이 구독과 연결된 모든 이벤트 개체의 값에 나타납니다.
지원되는 EngineEvent 값에는 PowerShell.Exiting, PowerShell.OnIdle 및 PowerShell.OnScriptBlockInvoke가 포함됩니다.
매개 변수 속성
| 형식: | String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | 100 |
| 필수: | True |
| 파이프라인의 값: | 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 |
CommonParameters
이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.
입력
None
Register-EngineEvent
출력
None or System.Management.Automation.PSEventJob
Action 매개 변수를 사용하는 경우 Register-EngineEventSystem.Management.Automation.PSEventJob 개체를 반환합니다. 그렇지 않으면 출력을 생성하지 않습니다.
참고
이벤트, 이벤트 구독 및 이벤트 큐는 현재 세션에만 존재합니다. 현재 세션을 닫으면 이벤트 큐가 삭제되고 이벤트 구독이 취소됩니다.