PowerShell禁用并启用驱动程序

时间:2014-12-22 08:47:50

标签: powershell driver

有时在重启/冷启动后我的Win8触摸屏驱动程序出现问题,所以我现在要手动重启它。

所以我想编写一个在登录后启动的脚本,它将禁用驱动程序并再次启用它。

我实际上找到了驱动程序,并且我可以通过以下方式获取驱动程序的对象列表:

Get-WmiObject Win32_PnPSignedDriver| select devicename, driverversion | where {$_.devicename -like "I2C*"}

但在行尾添加“| Disable-Device”将无效。

有谁能告诉我如何正确编写命令并像批处理文件一样启动脚本?

2 个答案:

答案 0 :(得分:6)

至少在Windows 10中它更容易:

$d = Get-PnpDevice| where {$_.friendlyname -like "I2Cwhatever*"}
$d  | Disable-PnpDevice -Confirm:$false
$d  | Enable-PnpDevice -Confirm:$false

答案 1 :(得分:3)

假设您使用的是Device Management cmdlets,我建议您使用同一包中提供的Get-Device cmdlet传递管道。

快速查看之后,我发现Disable-Device没有从管道中获取DeviceName或DriverVersion - 并且不会识别它是唯一的识别参数({{1 }})。

technet页面建议,禁用设备:

-TargetDevice

你可以简单地使用这样的东西,假设你的设备名称类似于使用Get-Device cmdlet:

$deviceName = Read-Host -Prompt 'Please enter the Name of the Device to Disable'; Get-Device | Where-Object -Property Name -Like $deviceName | Disable-Device