Node.js Powershell在添加或删除设备时检测

Node.js Powershell在添加或删除设备时检测,node.js,powershell,nwjs,Node.js,Powershell,Nwjs,我有一个节点JS NW.JS/Angular应用程序,它每5秒连续运行一个PowerShell脚本,以获取当前连接的可移动存储设备(USB拇指驱动器、SD卡),然后在UI中显示给用户。我的问题是:我能对PowerShell脚本本身做些什么来通知我更改,而不是在连续循环中运行它吗?现在看起来很好,工作也很顺利,只是想知道是否有“更好”的方法。我使用从一个简单的JavaScript setInterval()方法调用命令 您可以将计划任务挂接到Windows硬件更改事件。检测到硬件更改事件ID>任务

我有一个节点JS NW.JS/Angular应用程序,它每5秒连续运行一个PowerShell脚本,以获取当前连接的可移动存储设备(USB拇指驱动器、SD卡),然后在UI中显示给用户。我的问题是:我能对PowerShell脚本本身做些什么来通知我更改,而不是在连续循环中运行它吗?现在看起来很好,工作也很顺利,只是想知道是否有“更好”的方法。我使用从一个简单的JavaScript setInterval()方法调用命令


您可以将计划任务挂接到Windows硬件更改事件。检测到硬件更改事件ID>任务已触发>任务调用脚本

连接USB可移动存储设备时的连接事件ID 对于Windows 7系统,应生成大量事件记录 在Microsoft Windows DriverFrameworks用户模式/操作事件中 日志记录包括事件ID为2003、2004、2005、2010、, 2100、2105和更多

USB thumb驱动器与主机断开连接时的断开事件ID 在Windows 7系统中,应在同一时间生成几个事件记录 事件日志作为连接事件。事件ID为2100、2102的记录, 而且,当使用USB设备时,可能会产生更多数据 断开连接


您可以将计划任务挂接到Windows硬件更改事件。检测到硬件更改事件ID>任务已触发>任务调用脚本

连接USB可移动存储设备时的连接事件ID 对于Windows 7系统,应生成大量事件记录 在Microsoft Windows DriverFrameworks用户模式/操作事件中 日志记录包括事件ID为2003、2004、2005、2010、, 2100、2105和更多

USB thumb驱动器与主机断开连接时的断开事件ID 在Windows 7系统中,应在同一时间生成几个事件记录 事件日志作为连接事件。事件ID为2100、2102的记录, 而且,当使用USB设备时,可能会产生更多数据 断开连接


似乎可以在事件发生时注册要发生的操作。
Register WmiEvent
Register ciminicationevent
似乎都能完成代码正在执行的操作。我不知道您是否需要让powershell会话保持运行状态才能正常工作,tho。[blush]我只了解了这两个cmdlet。似乎可以在事件发生时注册要发生的操作。
Register WmiEvent
Register ciminicationevent
似乎都能完成代码正在执行的操作。我不知道您是否需要让powershell会话保持运行状态才能正常工作,tho。[脸红]我只看过这两个cmdlet。
ConvertTo-Json @(Get-WmiObject Win32_Volume -Filter ("DriveType=2 AND FileSystem IS NOT NULL"))