New-Event

Создает новое событие.

Синтаксис

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, пользователю не нужно подписываться на эти события.






См. также