Создает новое событие.
Синтаксис
New-Event [-SourceIdentifier] <string> [[-Sender] <psobject>] [[-EventArguments] <PSObject[]>] [[-MessageData] <psobject>] [<CommonParameters>]
Описание
Командлет New-Event создает новое пользовательское событие.
Пользовательские события позволяют уведомлять пользователей об изменениях состояния программы, а также о любых других изменениях, которые может обнаружить программа, включая изменения условий работы оборудования или системы, состояния приложений, состояния диска, состояния сети или завершение фонового задания.
Пользовательские события автоматически добавляются в очередь событий в сеансе в момент их возникновения; настраивать подписку на эти события не нужно. Однако если требуется перенаправить событие в локальный сеанс или задать действие для реагирования на событие, необходимо подписаться на такое пользовательское событие с помощью командлета Register-EngineEvent.
При создании подписки на пользовательское событие в сеанс добавляется подписчик на событие. Если отменить подписку на событие с помощью командлета Unregister-Event, подписчик на событие и само пользовательское событие будут удалены из сеанса. Если не подписываться на пользовательское событие, то для удаления события необходимо изменить условия работы программы или закрыть сеанс 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>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
Нет Передать входные данные этому командлету по конвейеру невозможно. |
Выходные данные |
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 используется для создания события в ответ на другое событие. Команда использует командлет Register-ObjectEvent для подписки на событие инструментария управления Windows (WMI), возникающее при создании нового процесса. Команда использует параметр Action командлета, чтобы вызвать командлет New-Event, создающий новое событие. Поскольку события, создаваемые командлетом New-Event, автоматически добавляются в очередь событий Windows PowerShell, пользователю не нужно подписываться на эти события.