Register-WmiEvent
Подписывается на событие WMI.
Синтаксис
Register-WmiEvent
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Class] <String>
[-Timeout <Int64>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Register-WmiEvent
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Query] <String>
[-Timeout <Int64>]
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Описание
Командлет Register-WmiEvent
подписывается на события инструментария управления Windows (WMI) на локальном компьютере или на удаленном компьютере.
При возникновении соответствующего события WMI оно добавляется в очередь событий в локальном сеансе, даже если событие инициировано на удаленном компьютере. Чтобы получить события в очереди событий, используйте Get-Event
командлет.
Параметры можно использовать Register-WmiEvent
для подписки на события на удаленных компьютерах и указания значений свойств событий, которые помогут определить событие в очереди. С помощью параметра Action можно указать действия, выполняющиеся при возникновении соответствующего события.
При подписке на событие к текущему сеансу добавляется подписчик события. Чтобы получить подписчиков событий в сеансе, используйте Get-EventSubscriber
командлет. Чтобы отменить подписку, используйте Unregister-Event
командлет, который удаляет подписчик события из сеанса.
В Windows PowerShell 3.0 появились новые командлеты модели CIM, выполняющие те же задачи, что и командлеты инструментария WMI. Командлеты модели CIM соответствуют стандартам WS-Management (WSMan) и CIM, что позволяет им использовать те же способы управления компьютерами под управлением Windows и других операционных систем. Вместо использования рекомендуется использовать Register-WmiEvent
командлет Register-CimIndicationEvent.
Примеры
Пример 1. Подписка на события, создаваемые с помощью класса
Эта команда подписывается на события, создаваемые с помощью класса Win32_ProcessStartTrace. Этот класс вызывает событие при запуске процесса.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted"
Пример 2. Подписка на события создания процесса
Эта команда использует запрос для подписки на события создания экземпляра Win32_process.
$wmiParameters = @{
Query = "select * from __instancecreationevent within 5 where targetinstance isa 'win32_process'"
SourceIdentifier = "WMIProcess"
MessageData = "Test 01"
TimeOut = 500
}
Register-WmiEvent @wmiParameters
Пример 3. Использование действия в ответ на событие
В этом примере показано, как использовать действие в ответ на событие. В этом случае при запуске процесса все Start-Process
команды в текущем сеансе записываются в XML-файл.
$action = { Get-History | where { $_.commandline -like "*start-process*" } | export-cliXml "commandHistory.clixml" }
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "ProcessStarted" -Action $action
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 ProcessStarted NotStarted False get-history | where {...
При использовании параметра Action возвращает фоновое задание, Register-WmiEvent
представляющее действие события. Для управления заданием можно использовать командлеты заданий , например Get-Job
и Receive-Job
управление заданием событий.
См. дополнительные сведения о заданиях.
Пример 4. Регистрация для событий на удаленном компьютере
Этот пример регистрируется для событий на удаленном компьютере Server01.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -Computername Server01
Get-Event -SourceIdentifier "Start"
WMI возвращает события на локальный компьютер и сохраняет их в очередь событий в текущем сеансе. Чтобы получить события, выполните локальную Get-Event
команду.
Параметры
-Action
Задает команды, которые обрабатывают события. Команды в параметре Action выполняются при возникновении события вместо отправки события в очередь событий. Заключите команды в фигурные скобки ({}
) для создания блока скрипта.
Значение действия может включать $Event
переменные , $EventSubscriber
и $Sender
$EventArgs
$Args
автоматические переменные, которые предоставляют сведения о событии в блок скрипта Action. Дополнительные сведения см. в статье about_Automatic_Variables.
При указании действия возвращает объект задания события, Register-WmiEvent
представляющий это действие. Чтобы управлять заданием события, используйте командлеты, которые содержат существительное Job (командлеты Job).
Type: | ScriptBlock |
Position: | 101 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Class
Указывает событие, на которое вы подписываетесь. Введите класс WMI, который создает событие. В каждой команде требуется указать параметр Class или Query.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Задает имя компьютера, на котором выполняется команда. По умолчанию используется локальный компьютер.
Введите имя NetBIOS, IP-адрес или полное доменное имя компьютера. Чтобы указать локальный компьютер, введите имя компьютера, точку (.
) или localhost.
Этот параметр не зависит от удаленного взаимодействия Windows PowerShell. Параметр ComputerName можно использовать, даже если компьютер не настроен для выполнения удаленных команд.
Type: | String |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Указывает учетную запись пользователя с разрешением на выполнение этого действия. По умолчанию используется текущий пользователь.
Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential , например объект, созданный командлетом Get-Credential
. При вводе имени пользователя этот командлет запрашивает пароль.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Forward
Указывает, что этот командлет отправляет события по данной подписке в сеанс на локальном компьютере. Этот параметр используется при регистрации событий, полученных на удаленном компьютере или в удаленном сеансе.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaxTriggerCount
Указывает максимальное число триггеров.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MessageData
Указывает дополнительные данные, которые будут связаны с подпиской на событие. Значение этого параметра отображается в свойстве MessageData всех событий, связанных с этой подпиской.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Namespace
Задает пространство имен класса WMI.
Type: | String |
Aliases: | NS |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Query
Указывает запрос на языке запросов WMI, определяющий класс событий инструментария WMI, например select * from __InstanceDeletionEvent
.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SourceIdentifier
Указывает имя, выбранное для подписки. Выбранное имя должно быть уникальным в текущем сеансе. Значение по умолчанию — идентификатор GUID, который назначает Windows PowerShell.
Значение этого параметра отображается в значении свойства SourceIdentifier объекта подписчика и всех объектов событий, связанных с этой подпиской.
Type: | String |
Position: | 100 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SupportEvent
Указывает, что этот командлет скрывает подписку на событие. Этот параметр используется, если текущая подписка является частью более сложного механизма регистрации событий и не должна обнаруживаться независимым образом.
Чтобы просмотреть или отменить подписку, созданную с помощью параметра SupportEvent, укажите параметр Get-EventSubscriber
Force командлетов.Unregister-Event
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Timeout
Указывает время ожидания выполнения команды в Windows PowerShell.
Значение по умолчанию — 0 (ноль) означает, что времени ожидания нет, из-за чего Windows PowerShell ожидает команды бессрочно.
Type: | Int64 |
Aliases: | TimeoutMSec |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
None
Нельзя передать объекты в этот командлет с помощью конвейера.
Выходные данные
None
Этот командлет не формирует никаких выходных данных.
Примечания
Чтобы использовать этот командлет в Windows Vista или более поздней версии ОС Windows, запустите Windows PowerShell, используя параметр "Запуск от имени администратора".
События, подписки на события и очередь событий существуют только в текущем сеансе. Если закрыть текущий сеанс, очередь событий удаляется, а подписка на событие отменяется.
PowerShell
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по