ElectronJS应用修改USB挂载权限后接口不刷新的CLI方案问询
解决Electron中USB启用后无法挂载的问题
问题根源
修改USBSTOR注册表项仅更改了服务的启动类型,但系统不会自动重新识别已连接的USB设备,需要手动触发服务重启或设备枚举才能让设置生效。
解决方案
1. 修改注册表后重启USBSTOR服务
在启用USB的close3()函数中,添加重启USBSTOR服务的PowerShell命令,让新的启动类型立即生效:
function close3() { window.close(); // 启用USB存储服务 PowerShell.$`reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR /v start /t REG_DWORD /d 3 /f`; // 重启服务使设置生效 PowerShell.$`Stop-Service USBSTOR; Start-Service USBSTOR`; }
2. 强制重新枚举USB设备(进阶方案)
如果重启服务仍无法识别USB设备,可通过PowerShell调用WMI接口重新枚举所有USB集线器,触发系统重新检测设备:
function close3() { window.close(); PowerShell.$`reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR /v start /t REG_DWORD /d 3 /f`; PowerShell.$`Stop-Service USBSTOR; Start-Service USBSTOR`; // 禁用并重新启用所有USB集线器,触发设备枚举 PowerShell.$`Get-WmiObject Win32_USBHub | ForEach-Object { $_.Disable(); Start-Sleep 1; $_.Enable() }`; }
3. 必须的权限要求
你的Electron应用需要以管理员权限运行,否则无法修改注册表、操作系统服务或调整USB设备状态。可以在打包时配置权限声明,或在启动时提示用户获取管理员权限。
内容的提问来源于stack exchange,提问作者Tahis77
相关产品推荐
相关产品推荐

