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

В Windows 8 и Windows Server 2012 набор существительных, используемых в PowerShell, пополнили printer, printerdriver и printjob. От принтера (как аппаратного устройства) обычно требуется вывод на бумагу, инициируемый заданием на печать. Задание печати создается программным воплощением принтера, появляющимся после установления связи между физическим компьютером и физическим принтером. Для подключения физического принтера к физическому компьютеру требуется кабель (обычно USB) или сетевое соединение между двумя устройствами, а также драйвер принтера. Другими словами, драйвер принтера делает возможным создание принтера (как программного объекта), создающего задание на печать, результатом выполнения которого является требуемый бумажный вывод.

Управление драйверами принтера

Итак, все начинается с управления драйверами принтера. Для этого и предназаначены команды PowerShell get-printerdriver, add-printerdriver, get-printerdriver и remove-printerdriver. Добавление и удаление драйверов принтера с помощью этих команд требует административных полномочий. Отмечаю это потому, что, как мы увидим, административные полномочия не требуются для добавления принтера, если его драйвер уже загружен в систему. Основной синтаксис add-printerdriver прост:

add-printerdriver

Например, загрузку драйвера для принтера Dell 1320C обеспечивает следующий запрос:

add-printerdriver «Dell Color Laser 1320c»

Название драйвера – «магическое имя», которое должно в точности совпадать с известным именем; в противном случае будет выдана ошибка (к сожалению, команда не воспринимает подстановочные знаки). Узнать «магическое имя» драйвера довольно просто с помощью запроса get-printerdriver в системе, в которой этот драйвер уже загружен, либо путем исследования содержимого файла. inf, ассоциированного с любым драйвером принтера. Просматривая файл, можно увидеть такой блок:

;
; Model sections.
[DELL]
«Dell Color Laser 1320c» = DLHSNZP1,LPTENUMDellColor_Laser_132010D5
«Dell Color Laser 1320c» = DLHSNZP1,USBPRINTDellColor_Laser_132010D5

В строке, следующей за именем производителя, обычно указано «магическое имя» драйвера.

При всех своих достоинствах команда add-printerdriver обещает больше, чем реально делает. Приведенный выше пример показывает, что добавить новые драйверы принтера в систему очень просто – если только они есть в хранилище драйверов. Конечно, системы Windows 8 (как и Windows 7) выпускаются с обширной коллекцией драйверов, но как быть, если необходима установка новых? Согласно документации, драйвер, отсутствующий в хранилище системы, можно загрузить с помощью параметра –infpath:

add-printerdriver -name «Waxtronic 320» -infpath «c:driverswaxtronicwi949.inf»

Кстати, разработчики Microsoft, по-видимому, настолько уверены в этой способности, что параметры infpath и –name задуманы как позиционные. Это позволяет записать приведенный выше запрос следующим образом:

add-printerdriver «Waxtronic 320» «c:driverswaxtronicwi949.inf»

Однако, к сожалению, ни один из вариантов не работает, и даже поиск в Google с целью получения ответа на вопрос «почему -infpath не действует?» не дает результатов. Возможно, это будет сделано в следующей версии. Пока же можно пользоваться куда более старой командой Pnputil. Впервые появившаяся в Windows Vista, команда Pnputil – неплохой помощник в деле управления драйверами. В частности, она позволяет устанавливать любой драйвер (или целую папку драйверов) с помощью параметров-переключателей -i и -a, как показано ниже:

pnputil –i –a»c:drivers]waxtronicwi949.inf"

Эта команда обычно работает и в ответ сообщает об установке пакета драйверов в виде файла OEMnn.inf (где nn – номер) в папке C:windowsinf. Файл. inf можно открывать в блокноте, чтобы найти точное имя драйвера. Следует, однако, понимать, что можно сколько угодно запускать Pnputil или set-printerdriver, но это не поможет убедить Windows 8 использовать драйверы, относящиеся ко времени до выпуска Vista.

Следует обратить внимание еще на два момента. Во-первых, имя драйвера принтера, указываемое в команде add-printerdriver, не зависит от регистра. Во-вторых, применяя Pnputil, следует помнить, что это не команда PowerShell и требует непременного следования -i и -a в указанном порядке. Попробуйте ввести запрос pnputil -a -i … и в ответ вам будут предложены примеры правильного синтаксиса Pnputil. Ну что же, теперь, когда принтеры установлены, можно перейти к их использованию. Но об этом — в следующий раз.