Поделиться через


New-Event

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

Синтаксис

Default (По умолчанию)

New-Event
    [-SourceIdentifier] <String>
    [[-Sender] <PSObject>]
    [[-EventArguments] <PSObject[]>]
    [[-MessageData] <PSObject>]
    [<CommonParameters>]

Описание

Командлет New-Event создает новое настраиваемое событие.

Пользовательские события можно использовать для уведомления пользователей о изменениях состояния в программе и любых изменениях, которые может обнаружить ваша программа, включая аппаратные или системные условия, состояние приложения, состояние диска, состояние сети или завершение фонового задания.

Пользовательские события автоматически добавляются в очередь событий в сеансе всякий раз, когда они возникают; Вам не нужно подписываться на них. Однако если вы хотите перенаправить событие в локальный сеанс или указать действие для реагирования на событие, используйте командлет Register-EngineEvent для подписки на настраиваемое событие.

При подписке на настраиваемое событие подписчик события добавляется в сеанс. Если отменить подписку на события с помощью командлета Unregister-Event, подписчик событий и настраиваемое событие удаляются из сеанса. Если вы не подписываетесь на настраиваемое событие, удалите событие, необходимо изменить условия программы или закрыть сеанс PowerShell.

Примеры

Пример 1. Создание события в очереди событий

PS C:\> New-Event -SourceIdentifier Timer -Sender Windows.Timer -MessageData "Test"

Эта команда создает новое событие в очереди событий PowerShell. Он использует объект Windows.Timer для отправки события.

Пример 2. Вызов события в ответ на другое событие

PS C:\> 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 возникают, автоматически добавляются в очередь событий PowerShell, не требуется зарегистрировать это событие.

Параметры

-EventArguments

Указывает объект, содержащий параметры события.

Свойства параметров

Тип:

PSObject[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:2
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-MessageData

Указывает дополнительные данные, связанные с событием. Значение этого параметра отображается в свойстве MessageData объекта события.

Свойства параметров

Тип:PSObject
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:3
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Sender

Указывает объект, который вызывает событие. По умолчанию используется подсистема PowerShell.

Свойства параметров

Тип:PSObject
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-SourceIdentifier

Задает имя нового события. Этот параметр является обязательным, и он должен быть уникальным в сеансе.

Значение этого параметра отображается в свойстве SourceIdentifier события.

Свойства параметров

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Входные данные

None

Невозможно передать объекты в этот командлет.

Выходные данные

PSEventArgs

Примечания

Новое настраиваемое событие, подписка на события и очередь событий существуют только в текущем сеансе. При закрытии текущего сеанса очередь событий удаляется, а подписка на события отменяется.