New-Event
새 이벤트를 만듭니다.
구문
New-Event [-SourceIdentifier] <string> [[-Sender] <psobject>] [[-EventArguments] <PSObject[]>] [[-MessageData] <psobject>] [<CommonParameters>]
설명
New-Event cmdlet은 새 사용자 지정 이벤트를 만듭니다.
사용자 지정 이벤트를 통해 하드웨어 또는 시스템 상태, 응용 프로그램 상태, 디스크 상태, 네트워크 상태 또는 백그라운드 작업 완료 등 프로그램에서 감지할 수 있는 변경 내용과 프로그램의 상태 변경 내용을 사용자에게 알릴 수 있습니다.
사용자 지정 이벤트는 발생할 때마다 세션의 이벤트 큐에 자동으로 추가되므로 가입할 필요가 없습니다. 그러나 이벤트를 로컬 세션으로 전달하거나 이벤트에 응답하도록 작업을 지정하려면 Register-EngineEvent cmdlet을 사용하여 사용자 지정 이벤트에 가입하십시오.
사용자 지정 이벤트에 가입하면 이벤트 가입자가 세션에 추가됩니다. Unregister-Event cmdlet을 사용하여 이벤트 가입을 취소하면 이벤트 가입자 및 사용자 지정 이벤트가 세션에서 삭제됩니다. 사용자 지정 이벤트에 가입되어 있지 않은 경우 이벤트를 취소하려면 프로그램 상태를 변경하거나 Windows PowerShell 세션을 닫아야 합니다.
매개 변수
-EventArguments <PSObject[]>
이벤트의 옵션이 포함된 개체를 지정합니다.
필수 여부 |
false |
위치 |
3 |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-MessageData <psobject>
이벤트와 연결된 추가 데이터를 지정합니다. 이 매개 변수의 값은 이벤트 개체의 MessageData 속성에 표시됩니다.
필수 여부 |
false |
위치 |
4 |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Sender <psobject>
이벤트를 발생시키는 개체를 지정합니다. 기본값은 Windows PowerShell 엔진입니다.
필수 여부 |
false |
위치 |
2 |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-SourceIdentifier <string>
새 이벤트의 이름을 지정합니다. 이 매개 변수는 필수 사항이며 세션에서 고유해야 합니다.
이 매개 변수의 값은 이벤트의 SourceIdentifier 속성에 표시됩니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
없음 입력을 이 cmdlet으로 파이프할 수 없습니다. |
출력 |
System.Management.Automation.PSEventArgs |
참고
새 사용자 지정 이벤트, 이벤트 가입 및 이벤트 큐는 현재 세션에서만 존재합니다. 현재 세션을 닫으면 이벤트 큐가 삭제되고 이벤트 가입이 취소됩니다.
예 1
C:\PS>new-event -sourceidentifier Timer -sender windows.timer -messagedata "Test"
설명
-----------
이 명령은 Windows PowerShell 이벤트 큐에 새 이벤트를 만들며 Windows.Timer 개체를 사용하여 이벤트를 보냅니다.
예 2
C:\PS>function Enable-ProcessCreationEvent
{
$query = New-Object System.Management.WqlEventQuery "__InstanceCreationEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'"
$processWatcher = New-Object System.Management.ManagementEventWatcher $query
$identifier = "WMI.ProcessCreated"
Register-ObjectEvent $processWatcher "EventArrived" -SupportEvent $identifier -Action {
[void] (New-Event -sourceID "PowerShell.ProcessCreated" -Sender $args[0] -EventArguments $args[1].SourceEventArgs.NewEvent.TargetInstance)
}
}
설명
-----------
이 샘플 함수는 New-Event cmdlet을 사용하여 다른 이벤트에 대한 응답으로 이벤트를 발생시킵니다. 명령은 Register-ObjectEvent cmdlet을 사용하여 새 프로세스를 만들 때 발생하는 WMI(Windows Management Instrumentation) 이벤트에 가입합니다. 또한 cmdlet의 Action 매개 변수를 사용하여 New-Event cmdlet을 호출하며, 이 cmdlet이 새 이벤트를 만듭니다.
New-Event가 발생시키는 이벤트는 Windows PowerShell 이벤트 큐에 자동으로 추가되므로 해당 이벤트를 등록할 필요가 없습니다.
참고 항목
개념
Register-ObjectEvent
Register-EngineEvent
Register-WmiEvent
Unregister-Event
Get-Event
Remove-Event
Wait-Event