#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-устройства. …