【发布时间】:2015-07-02 17:35:25
【问题描述】:
我正在尝试通过 PowerShell 自动执行一些耗时的任务,我必须执行这些任务来制作新的 VM 模板,其中之一是从 VM 中删除所有 NIC 并清理不存在的设备管理器设备。
从 VM 中删除 NIC 后,我尝试使用以下代码 sn-ps 来清理设备管理器。
wmic nic where "(servicename is null)" delete
gwmi win32_networkadapter | ?{$_.ServiceName -eq $null} | rwmi
在这两种情况下,我都会收到错误“提供程序无法进行尝试的操作”。查看 WMI-Activity 的事件日志似乎没有帮助:ResultCode = 0x80041024;可能的原因 = 未知。
有没有人能够做类似的事情来删除不存在的设备或能够找到上述命令的问题?
编辑:我尝试使用 DevCon 删除设备,但它似乎只适用于现有设备。我现在正在梳理注册表,看看是否有一个特定的键或一组键,如果删除它会从设备管理器中删除 NIC。
【问题讨论】:
-
我不相信powershell支持这个功能,你只能禁用设备,不能安装/卸载设备驱动程序。不过,总有一些不错的旧命令行工具可以从 powershell 调用:support.microsoft.com/en-us/kb/311272
-
感谢知识库。我希望能够使用内置命令行而不是其他工具,但我想我必须尝试使用 DevCon。
-
尝试使用 DevCon 并遇到错误(删除失败),在一些论坛上阅读并看到 DevCon 仅适用于当前设备。
标签: powershell registry wmi nic device-manager