PowerShell 脚本用于重新安装打印机,如果是默认打印机,则设置为默认打印机

PowerShell 脚本用于重新安装打印机,如果是默认打印机,则设置为默认打印机

我们公司有一台打印机,它给我们带来了问题。我们尝试了几种不同的解决方案,但当用户使用这台打印机进行打印时,Windows 7 有时会显示类似以下内容:

Windows 需要从...计算机下载并安装软件驱动程序

但是 PC 已经有正确的驱动程序。我尝试根据搜索此问题时出现的解决方案更改组策略中的几个设置,但到目前为止没有任何效果。目前我认为最好的方法是让 Windows 在每次用户登录时重新安装打印机。

我希望仅当用户已将打印机设置为默认打印机时,才将其设置为默认打印机。如何在 PowerShell 中编写此脚本?

答案1

这可以通过 WMI 实现,使用Win32_打印机类。下面是使用 powershell 的示例,您也可以在 vbscript 中执行此操作。

您可以根据自己的需要调整以下脚本。示例假设驱动程序名为“TOSHIBA e-STUDIO3510cSeriesPCL6”

$driver_name = 'TOSHIBA e-STUDIO3510cSeriesPCL6'

$printers = Get-WmiObject -Class win32_printer -Filter "DriverName='$driver_name'"

foreach ($printer in $printers) { 

    $printer.Delete()

    $return_status = (Invoke-WmiMethod -Class win32_printer -Name AddPrinterConnection -ArgumentList $printer.Name).ReturnStatus

    If ($return_status -eq 0 -and $printer.Default) { 

        (Get-WmiObject -Class win32_printer -Filter "Name='$($printer.Name)'").SetDefault() 
    }
}

该脚本的作用是查询哪些打印机正在使用特定的驱动程序,并在必要时重新安装它们,同时保持默认打印机状态。

相关内容