1

У нас есть принтер, который доставляет нам проблемы. Мы пробовали несколько разных решений, но когда пользователь отправляется на печать на этот принтер, Windows 7 иногда отображает что-то вроде:

Windows необходимо загрузить и установить драйвер программного обеспечения с ... компьютера

Однако на ПК уже установлен правильный драйвер. Я попытался изменить несколько параметров в нашей групповой политике в соответствии с решениями, которые возникли при поиске этой проблемы, но пока ничего не помогло. Сейчас я думаю, что было бы лучше просто переустановить принтер Windows каждый раз, когда пользователь входит в систему.

Я хочу, чтобы принтер был установлен на принтер по умолчанию, только если пользователь уже установил его в качестве принтера по умолчанию. Как я могу написать это в PowerShell?

1 ответ1

0

Это может быть достигнуто с помощью WMI с использованием класса Win32_Printer . Ниже приведен пример использования 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() 
    }
}

Сценарий выполняет запрос о том, какие принтеры используют определенный драйвер, и переустанавливает их, сохраняя при необходимости состояние принтера по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .