Register-WmiEvent
Подписывается на событие инструментария управления Windows (WMI).
Синтаксис
class (По умолчанию)
Register-WmiEvent
[-Class] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
query
Register-WmiEvent
[-Query] <String>
[[-SourceIdentifier] <String>]
[[-Action] <ScriptBlock>]
[-Namespace <String>]
[-Credential <PSCredential>]
[-ComputerName <String>]
[-Timeout <Int64>]
[-MessageData <PSObject>]
[-SupportEvent]
[-Forward]
[-MaxTriggerCount <Int32>]
[<CommonParameters>]
Описание
Командлет Register-WmiEvent подписывается на события инструментария управления Windows (WMI) на локальном компьютере или на удаленном компьютере.
Когда событие WMI подписывается, оно добавляется в очередь событий в локальном сеансе, даже если событие происходит на удаленном компьютере. Чтобы получить события в очереди событий, используйте командлет Get-Event.
Параметры Register-WmiEvent можно использовать для подписки на события на удаленных компьютерах и указать значения свойств событий, которые помогут определить событие в очереди. Можно также использовать параметр Action, чтобы указать действия, которые необходимо предпринять при возникновении события подписки.
При подписке на событие подписчик события добавляется в сеанс. Чтобы получить подписчиков событий в сеансе, используйте командлет Get-EventSubscriber. Чтобы отменить подписку, используйте командлет Unregister-Event, который удаляет подписчик события из сеанса.
Новые командлеты Common Information Model (CIM), представленные в Windows PowerShell 3.0, выполняют те же задачи, что и командлеты 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-Object { $_.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управление заданием событий.
Дополнительные сведения см. в разделе about_Jobs.
Пример 4. Регистрация событий на удаленном компьютере
Этот пример регистрирует события на удаленном компьютере Server01.
Register-WmiEvent -Class 'Win32_ProcessStartTrace' -SourceIdentifier "Start" -ComputerName Server01
Get-Event -SourceIdentifier "Start"
WMI возвращает события на локальный компьютер и сохраняет их в очереди событий в текущем сеансе. Чтобы получить события, выполните локальную Get-Event команду.
Параметры
-Action
Задает команды, обрабатывающие события. Команды в параметре действия выполняются при вызове события вместо отправки события в очередь событий. Заключите команды в фигурные скобки ({}) для создания блока скрипта.
Значение действия может включать $Eventпеременные , $EventSubscriberи $args$Sender$EventArgsавтоматические переменные, которые предоставляют сведения о событии в блок скрипта Action. Дополнительные сведения см. в разделе about_Automatic_Variables.
При указании действия Register-WmiEvent возвращает объект задания события, представляющий это действие. Для управления заданием события можно использовать командлеты,
Свойства параметров
| Тип: | ScriptBlock |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | 101 |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Class
Указывает событие, в которое вы подписываетесь. Введите класс WMI, который создает события.
Свойства параметров
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
class
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-ComputerName
Указывает имя компьютера, на котором выполняется команда. По умолчанию используется локальный компьютер.
Введите имя NetBIOS, IP-адрес или полное доменное имя компьютера. Чтобы указать локальный компьютер, введите имя компьютера, точку (.) или localhost.
Этот параметр не зависит от удаленного взаимодействия Windows PowerShell. Вы можете использовать параметр
Свойства параметров
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | CN |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Credential
Указывает учетную запись пользователя, которая имеет разрешение на выполнение этого действия. По умолчанию используется текущий пользователь.
Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, например объект, созданный командлетом Get-Credential. При вводе имени пользователя этот командлет запрашивает пароль.
Свойства параметров
| Тип: | PSCredential |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Forward
Указывает, что этот командлет отправляет события для этой подписки в сеанс на локальном компьютере. Используйте этот параметр при регистрации событий на удаленном компьютере или в удаленном сеансе.
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-MaxTriggerCount
Указывает максимальное число триггеров.
Свойства параметров
| Тип: | Int32 |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-MessageData
Указывает любые дополнительные данные, связанные с этой подпиской на события. Значение этого параметра отображается в свойстве MessageData всех событий, связанных с этой подпиской.
Свойства параметров
| Тип: | PSObject |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Namespace
Задает пространство имен класса WMI.
Свойства параметров
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | НС |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Query
Задает запрос на языке запросов WMI (WQL), который определяет класс событий WMI, например select * from __InstanceDeletionEvent.
Свойства параметров
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
query
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-SourceIdentifier
Указывает имя, выбранное для подписки. Выбранное имя должно быть уникальным в текущем сеансе. Значением по умолчанию является GUID, назначаемое Windows PowerShell.
Значение этого параметра отображается в значении свойства SourceIdentifier объекта подписчика и всех объектов событий, связанных с этой подпиской.
Свойства параметров
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | 100 |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-SupportEvent
Указывает, что этот командлет скрывает подписку на события. Используйте этот параметр, если текущая подписка является частью более сложного механизма регистрации событий и не должна быть обнаружена независимо.
Чтобы просмотреть или отменить подписку, созданную с помощью параметра SupportEvent, укажите параметр Get-EventSubscriberForce командлетов.Unregister-Event
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Timeout
Указывает, сколько времени Windows PowerShell ожидает завершения этой команды.
Значение по умолчанию , 0 (ноль), означает, что время ожидания отсутствует, и это приводит к тому, что Windows PowerShell будет ждать неограниченное время ожидания.
Свойства параметров
| Тип: | Int64 |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | TimeoutMSec |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
None
Невозможно передать объекты в этот командлет.
Выходные данные
None
Этот командлет не создает выходные данные.
Примечания
Чтобы использовать этот командлет в Windows Vista или более поздней версии операционной системы Windows, запустите Windows PowerShell с помощью параметра "Запуск от имени администратора".
События, подписки на события и очередь событий существуют только в текущем сеансе. При закрытии текущего сеанса очередь событий удаляется, а подписка на события отменяется.