Обнаружение Powershell при добавлении или удалении устройства

#node.js #powershell #nwjs

#node.js #powershell #nwjs

Вопрос:

У меня есть приложение Node JS NW.js / Angular, которое непрерывно запускает скрипт PowerShell каждые 5 секунд, чтобы получить подключенные в данный момент съемные устройства хранения (флэш-накопители USB, SD-карты), которые я затем показываю пользователю в пользовательском интерфейсе. Мой вопрос: могу ли я что-нибудь сделать с самим сценарием PowerShell, чтобы уведомлять меня об изменениях, а не запускать его в непрерывном цикле? Сейчас кажется, что все в порядке и работает гладко, просто интересно, есть ли «лучший» способ. Я использую библиотеку node-powershell из NPM для вызова команды из простого метода setInterval() на JavaScript.

 ConvertTo-Json @(Get-WmiObject Win32_Volume -Filter ("DriveType=2 AND FileSystem IS NOT NULL"))
  

Комментарии:

1. кажется, что вы можете зарегистрировать действие, которое будет выполняться при возникновении события. Register-WmiEvent и Register-CimIndicationEvent оба, похоже, способны делать то, что делает ваш код. я не знаю, нужно ли вам оставлять сеанс powershell запущенным, чтобы он работал, хотя. [ румянец ] я читал только о двух командлетах.

Ответ №1:

Вы можете привязать запланированную задачу к событию изменения оборудования Windows. Обнаружен идентификатор события изменения оборудования> Задача запущена > Задача вызывает ваш скрипт…

Идентификаторы событий подключения Когда USB-съемное запоминающее устройство подключено к системе Windows 7, в журнале событий Microsoft-Windows-DriverFrameworks-UserMode /Operational должно быть сгенерировано несколько записей о событиях. Записи включают записи с идентификатором события 2003, 2004, 2005, 2010, 2100, 2105, и многое другое. …

Идентификаторы событий отключения Когда флэш-накопитель USB отключается от системы Windows 7, в том же журнале событий, что и события подключения, должно быть сгенерировано несколько записей о событиях. Записи с идентификатором события 2100, 2102 и потенциально больше могут генерироваться при отключении USB-устройства. …