New-Event
Создает новое событие.
Синтаксис
New-Event
[-SourceIdentifier] <String>
[[-Sender] <PSObject>]
[[-EventArguments] <PSObject[]>]
[[-MessageData] <PSObject>]
[<CommonParameters>]
Описание
Командлет New-Event
создает новое пользовательское событие.
Пользовательские события позволяют уведомлять пользователей об изменениях состояния программы, а также о любых других изменениях, которые может обнаружить программа, включая изменения условий работы оборудования или системы, состояния приложений, состояния диска, состояния сети или завершение фонового задания.
Пользовательские события автоматически добавляются в очередь событий в сеансе в момент их возникновения; настраивать подписку на эти события не нужно. Однако если вы хотите переслать событие в локальный сеанс или указать действие для ответа на событие, используйте Register-EngineEvent
командлет , чтобы подписаться на пользовательское событие.
При создании подписки на пользовательское событие в сеанс добавляется подписчик на событие. Если отменить подписку на события с помощью командлета Unregister-Event
, подписчик события и пользовательское событие удаляются из сеанса. Если вы не подписаны на пользовательское событие, чтобы удалить событие, необходимо изменить условия программы или закрыть сеанс PowerShell.
Примеры
Пример 1. Create нового события в очереди событий
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
Указывает объект, содержащий параметры события.
Type: | PSObject[] |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MessageData
Указывает дополнительные данные, связанные с событием. Значение этого параметра отображается в свойстве MessageData объекта события.
Type: | PSObject |
Position: | 3 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Sender
Указывает объект, который вызывает событие. По умолчанию используется подсистема PowerShell.
Type: | PSObject |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SourceIdentifier
Задает имя нового события. Этот параметр является обязательным и должен быть уникальным в сеансе.
Значение этого параметра отображается в свойстве SourceIdentifier событий.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
None
В этот командлет нельзя передать входные данные.
Выходные данные
Примечания
Нет источников событий, доступных на платформах Linux или macOS.
Новое пользовательское событие, подписка на событие и очередь событий существуют только в текущем сеансе. Если закрыть текущий сеанс, очередь событий удаляется, а подписка на событие отменяется.