Назад | Перейти на главную страницу

Массовое изменение настроек принтера по умолчанию

На сервере печати Server 2008 R2 у нас есть ~ 30 принтеров HP (некоторые модели CM3530, M4345 и CP3525), и меня попросили преобразовать всю двустороннюю печать, а для цветных принтеров - шкалу серого. Есть ли сценарий PowerShell или трюк с cmd-строкой, или мне нужно пройти через настройки каждого принтера и изменить их вручную?

Собственно новый HP v5.6.0 их "Универсальный блок питания HP" и "Универсальный HP PCL 6"драйверы печати поставляются с утилитой под названием:"Утилита конфигурации драйвера HP", который позволяет вам изменять файл CFG в папке установки драйвера, чтобы любая очередь, измененная для этого драйвера, получала указанные вами настройки. Вы также можете заблокировать настройки, чтобы пользователи не могли вносить ненужные изменения.

Скачать

-Джон

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

Setprinter.exe может это сделать, по крайней мере, для драйверов принтера HP.

http://windowsitpro.com/windows/jsi-tip-9675-setprinterexe-command-line-tool-set-configurations-or-states-local-or-remote-pr

Вот копия сценария PS, который использует команду set printer для изменения цвета на BW:

$TargetHost = "printservernamehere"
$list = get-wmiobject -ComputerName $TargetHost -class win32_printer
$i = 1

Foreach ($printer in $list) {
    $name = $printer.name
    Write-host("Working on " + $name + " (#" + $i++ + " of " + $list.Count + ")")
    setprinter \\$TargetHost\$name 8 "pdevmode=dmcolor=1"
}

В первую очередь я бы посмотрел:

HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers

Здесь вы найдете индивидуальную информацию о конфигурации для каждой очереди, установленной на машине. Каждый ключ будет содержать по крайней мере эти три подраздела:

DsDriver

DsSpooler

PrinterDriverData

Первое и третье - это то, на что вы хотите взглянуть. Некоторые драйверы кэшируют здесь много информации о конкретной модели, чтобы сэкономить время и использовать меньше сетевых ресурсов.

Тем не менее, я думаю, что специфические настройки функций, которые вы получаете из «Printing Defaults», управляются на уровне драйвера. Однако большинство принтеров используют SNMP для автоматического получения / установки этой информации. Вы также можете найти записи реестра, разбросанные по реестру, которые содержат кешированную информацию, которая здесь полезна.

Удачи!

Ответ от Доуна не сработал. Команда тоже не setprinter, а любые ссылки показывают "Set-Printer". Похоже, на этом этапе лучше отредактировать реестр.

https://technet.microsoft.com/en-us/library/hh918361(v=wps.630).aspx (Set-PrintConfiguration) https://technet.microsoft.com/en-us/library/hh918366(v=wps.630).aspx (Установить-принтер)

Мне не повезло с Set-Printer, но сблизился с Set-PrintConfiguration.

       #Set object to desired printer's print config
    $PrintConfiguration = Get-PrintConfiguration –PrinterName "Printer Name Here"
       #Set color to false
    $PrintConfiguration.Color = $false
       #Apply the changes
    Set-PrintConfiguration –InputObject $PrintConfiguration

Вы можете использовать часть ответа Доуна, чтобы получить список принтеров, а затем выполнить цикл (чтобы программно ввести имя принтера). Имя будет в разделе собственности Name.

$PrinterList = get-wmiobject -ComputerName $TargetHost -class win32_printer

Проблема с этим подходом в том, что он полностью отключает цвет, насколько я могу судить. Он также не работал с моим драйвером PCL, только PS. При проверке свойств / настроек принтера по-прежнему будет отображаться значение по умолчанию Автоцвет (иначе отключение цвета не будет отражаться). По крайней мере, если вы хотите запретить пользователям печатать в цвете, это может помочь.