Вы можете использовать групповые политики (GPO) для установки принтеров на компьютеры пользователей домена Active Directory. В этой статье мы покажем, как автоматически установить принтер пользователю домена при его входе на компьютер.
Рассмотрим следующую конфигурацию: в организации имеется 3 отдела, каждый отдел должен печатать документы на собственном цветном сетевом принтере. Ваша задача настроить автоматическое подключение сетевых принтеров пользователям в зависимости от отдела.
Содержание:
- Подключение принтеров доменным пользователям через GPO
- Разрешить установку принтеров через GPO без прав администратора
Подключение принтеров доменным пользователям через GPO
Создайте три новые группы безопасности в AD (prn_HPColorSales, prn_HPColorIT, prn_HPColorManagers) и добавьте в нее пользователей отделов (наполнение групп пользователей можно автоматизировать по статье “Динамические группы в AD”). Вы можете создать группы в консоли ADUC, или с помощью командлета New-ADGroup:
New-ADGroup "prnHPColorSales" -path 'OU=Groups,OU=Moscow,DC=corp,dc=winitpro,DC=ru' -GroupScope Global –PassThru
- Запустите консоль редактора доменных политик (GPMC.msc), создайте новую политику prnt_AutoConnect и прилинкуйте ее к Organizational Unit (OU), в котором находятся целевые пользователи;
Если у вас в домене используется небольшое количество сетевых принтеров (до 30-50), вы можете использовать одну GPO для установки всех принтеров. Если у вас сложная структура домена, есть сайты AD, используется делегирование прав администраторам филиалов, лучше создать несколько политик подключения принтеров. Например, по одной GPO для каждого сайта или OU.
- Перейдите в режим редактирования политики и разверните секцию User Configuration -> Preferences -> Control Panel Setting -> Printers. Создайте новый элемент политики с именем Shared Printer;
Если вы хотите подключать принтер по IP адресу (не через принт-сервер, а напрямую), выберите пункт TCP/IP Printer.
- Действие – Update. В поле Shared Path укажите UNC адрес принтера, например,
\\msk-prnt\hpcolorsales
(в моем примере все принтеры подключены к принт-серверу
\\msk-prnt
). Здесь же вы можете указать, нужно ли использовать этот принтер в качестве принтера по-умолчаниюВы можете опубликовать ваши принтеры в Active Directory. Для этого нужно включить опцию List in the Directory в настройках общего сетевого принтера на вкладке Sharing. В этом случае вы можете не указывать имя принетра вручную, а найти его поиском в AD. Просто нажмите кнопку с тремя точками при выборе принтера, нажмите кнопку Find now и выберите имя сетевого принтера из списка.
- Перейдите на вкладку Common и укажите, что принтер нужно подключать в контексте пользователя (опция Run in logged-on user’s security context). Затем выберите опцию Item-level targeting и нажмите на кнопку Targeting;
- С помощью нацеливания GPP вам нужно указать, что данная политика подключения принтера применялась только для членов группы prn_HPColorSales. Для этого нажмите New Item -> Security Group -> в качестве имени группы укажите prn_HPColorSales;
Обратите внимание, что данное ограничение не запрещает любому пользователю домена подключить это принтер вручную в проводнике Windows. Чтобы ограничить доступ к принтеру, нужно изменить права доступа к нему на принт-сервере, ограничив возможность печати определенными группам.
- Аналогичным образом создайте политики установки сетевых принтеров для других групп пользователей.
Есть еще старый раздел политик для настройки принтеров — Computer Configuration -> Policies -> Windows Settings -> Deployed Printers, однако этот метод установки принтеров пользователям не такой гибкий, как рассмотренный нами способ с помощью GPP.
При использовании такой групповой политики, новые принтера будут устанавливаться у пользователей, только если на их компьютерах уже установлен соответствующий принтеру драйвер печати (драйвера нужно предварительно установить вручную или интегрировать напрямую в образ Windows).
Если для данного принтера не установлен драйвер, то назначенный через GPO принтер не будет добавлен пользователю. При этом в журнале Event Log -> Application появится событие с Event ID 4096:
Source: Group Policy Printers The user 'HPLaserJet4101' preference item in the 'prnt_AutoConnect {0D83EA70-0077-46A3-882A-C4FEED3DA489}' Group Policy Object did not apply because it failed with error code '0x800702e4 The requested operation requires elevation.' This error was suppressed.
Дело в том, что теперь пользователи Windows без прав администратора не могут установить принтера даже не смотря на настройки политики Point and Print Restriction.
Разрешить установку принтеров через GPO без прав администратора
В 2021 году в сервисе Print Spooler была обнаружена серьезная уязвимость (PrintNightmare CVE-2021-34527), для исправления которой Microsoft изменила поведение Windows при установке драйверов печати. Теперь пользователи без прав администратора не могут установить драйвера для принтера (KB5005033), в том числе с помощью параметра GPO Point and Print. Установку драйверов (подписанных и неподписанных) должны выполнять только пользователи с правами администратора.
Однако есть обходное решение, которое позволит обычным пользователям установить драйвера. Для этого нужно изменить вашу GPO установки принтеров.
- Перейдите в раздел Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options и измените значение параметра Devices: Prevent users from installing printer drivers на Enabled;
- Теперь перейдите в Computer Configuration -> Policies -> Administrative Templates -> System -> Driver Installation в параметре Allow non-administrators to install drivers for these device setup classes добавьте классы для устройства типа принтеры
{4658ee7e-f050-11d1-b6bd-00c04fa372a7}
и
{4d36e979-e325-11ce-bfc1-08002be10318}
. Это разрешит установку только драйверов печати; - Перейдите в раздел Computer Configuration -> Policies -> Administrative Templates -> Printers и включите политику Point and Print Restrictions. Здесь нужно указать список ваших принт-серверов (Users can only point and print to these servers), с которых разрешено устанавливать драйверы печати. В двух оставшихся параметрах выберите Don’t show warning or elevation prompt;
- Добавьте список ваших доверенных прнит-серверов в параметр Package Point and print — Approved servers;
- (Теперь самый важный пункт!!). Чтобы разрешить установку драйвера печати без прав админа нужно временно изменить значение параметра реестра RestrictDriverInstallationToAdministrators на 0.
На отдельном компьютере вы можете изменить этот параметр с помощью команды:
reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" /v RestrictDriverInstallationToAdministrators /t REG_DWORD /d 0 /f
Чтобы изменить этот параметр реестра на компьютере через GPO, нужно создать правило GPP в разделе Computer (Configuration -> Preferences -> Windows Settings -> Registry. Создайте параметр реестра с настройками:
Action: Replace Hive : HKEY_LOCAL_MACHINE Key path: Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint Value name : RestrictDriverInstallationToAdministrators Type: REG_DWORD Value: 0
В новых шаблонах административных ADMX файлов из Microsoft Security Baseline для этого параметра реестра добавлен отдельная опция GPO. Называется она Limits printer driver installation to Administrators (находится в разделе Computer Configuration -> Administrative Templates -> Printers).
Перейдите на вкладку Common и включите опцию Remove this item when it is no longer applied.
Теперь обновите настройки GPO на клиентах (перелогиньтесь или выполните
gpupdate /force
) и проверьте, что драйвера с принт-серверов теперь устанавливаются автоматически. В журнале Application должны появится события MsiInstaller вида:
EventID 1040 Beginning a Windows Installer transaction: C:\Windows\system32\spool\DRIVERS\x64\3\CIOUM64.MSI. Client Process Id: 7240.
Такая GPO позволит любому пользователю без прав администратора установить сетевые принтера из указанных серверов печати без запроса на повышения прав и уведомлений.
Обратите внимание, что таким образом можно установить только подписанные драйвера принтеров (Package-aware v3 print drivers). Для таких драйверов в консоли Printer Management (printmanagement.msc) в разделе Drivers должно быть указано Packaged=True. Подробнее об этом здесь https://winitpro.ru/index.php/2016/08/31/update-kb3170455-network-shared-printer-error/
Если вы попытаетесь установить через GPO принтер с неподписанным драйвером, он не будет установлен не смотря на параметр RestrictDriverInstallationToAdministrators:
The user 'BrotherDCP2540' preference item in the 'prnt_AutoConnect {GUID}' Group Policy Object did not apply because it failed with error code '0x80070bcb The specified printer driver was not found on the system and needs to be downloaded.' This error was suppressed.
Элемент предпочтения пользователь "BrotherDCP2540" в объекте групповой политики "Подключение принтеров {GUID}" не применен по причине ошибки с кодом '0x80070bcb Указанный драйвер принтера не найден в системе. Необходимо скачать драйвер.' Эта ошибка была отключена.
Раньше для установки и подключения принтеров пользователям мне приходилось использовать VBS /PowerShell скрипты, которые запускались как Startup скрипты GPO и возможности фильтрации групповых политик. Однако использовать Group Policy Preferences для установки принтеров пользователям намного проще.
You can add a printer to Microsoft Active Directory Domain Services to make it available to everyone, or remove it if you don’t want it available. Just use these steps.
This tutorial assumes the printer is already shared from a computer or print server.
- From any Windows computer, hold down the Windows Key while pressing “R” to bring up the Windows Run dialog.
- Do one of the following:
- Type “printmanagement.msc“, then press “Enter“. Print Management should appear.
- Type “mmc“, then go to “File” > “Add or Remove Snap-ins“, add “Print Management“, then select “OK“.
- Expand “Print Servers“.
- If you are not on the computer where the printer is shared or there are no options, right-click “Print Servers“, choose “Add/Remove Servers…“, then add the IP address or computer name of the computer where the printer is shared from.
- Expand “Printers“.
- Right-click the printer you wish to add or remove from Active Directory, then select “Properties“.
- Select the “Sharing” tab.
- Check the “List in the directory” check box if you wish to add the printer to AD. Uncheck it to delete it from AD.
Contents
- 1 FAQ
-
- 1.0.1 Windows 11, 10, & 8
- 1.0.2 Windows 7
-
FAQ
How do I see the list of printers added from a client computer?
You should now be able to search and view printers that are published to Active Directory with these steps.
Windows 11, 10, & 8
Select “Start” and type “Advanced printer setup“. Select the “Advanced printer setup” option. (You may have to select “Settings” first)
Windows 7
“Control Panel” > “Hardware and Sound” > “Devices and Printers” > “Add a printer” > “Add a network, wireless, or Bluetooth printer” > “The printer that I wanted isn’t listed” > “Find a printer in the directory, based on located or feature” > “Next“
Author Mitch Bartlett
Through my career that spans over 20 years I have become an expert in Microsoft Systems Administration, Android, and macOS. I started this site as a technical guide for myself and it has grown into what I hope is a useful knowledgebase for everyone.
Для того что бы настроить добавление необходимых принтеров пользователю, нужно установить на сервере роль Принт Сервера.
Делается это через Диспетчер серверов -> Добавить роли и компоненты -> на странице ролей ставим галочку напротив Службы печати и документов -> Сервер печати -> Далее Далее… и дожидаемся окончания установки.
Теперь создаем группы безопасности в оснастке Пользователи и компьютеры Active Directory. В моем случае я создал отдельный OU с названием printers а сами группы внутри него. Группы для удобства назвал PRN — что означает что это группа принтера, название отдела к которому принтер относится например KADRY, и географическое место положение MSK — что означает что данный принтер находится в Москве. Например PRN-KADRY-MSK. Также группы которые которые добавляют пользователю все принтеры на предприятии ALL-PRN-ACCESS-MSK, но по сути может понадобиться либо админам, либо руководителям.
После чего добавляем в каждую группу принтера пользователей, которые будут его использовать.
Ввиду того, что политика после создания принтера у пользователя не умеет удалять принтер, в случае если пользователя убрать из группы, то создадим еще столько же групп, сколько принтеров, с таким же названием, но с приставкой RM, для того что бы если пользователю более не понадобится принтер, убрать его из устройств. Выглядеть это должно примерно следующим образом:
Теперь идем в оснастку управления сервером печати и создаем принтеры на сервере.
Переходим Серверы печати -> имя сервера(локально) -> принтеры -> Добавить принтер
Далее Добавляем принтер по IP адресу TCP/IP -> Поле Имя узла или IP адрес добавляем ip адрес принтера (оно же будет как имя порта по умолчанию) -> Имя принтера лучше всего задать такое же как имя группы безопасности для этого принтера, дабы избежать путаницы в дальнейшем, Галочку Общий доступ к принтеру оставляем и имя общего ресурса даем такое же как название принтера и группы безопасности (вообще лучше не указывать в качестве имени принтера название его производителя, так как принтер потом сломается, вместо киосеры будет hp, а название останется киосера….не очень удобно) Если потребуется подсунуть драйвер — подсовываем, предварительно скачав его на официальном сайте производителя в формате .inf
Когда принтер добавлен, проваливаемся внутрь него и на вкладке Доступ ставим галочку Внести в Active Directory (для того что бы его можно было найти в AD, а не вписывать имя принтера руками)
Принтер готов к использованию, и его уже можно добавлять пользователю напрямую в формате \\<Имя принт сервера>\<Название принтера>. Но для автоматизации добавления потребуется создать объект групповой политики.
В нашем случае я создал политику распространяющуюся на весь домен, но если необходимо добавить политику на отдельный OU, то создаем политику внутри него. Тогда политика применится только на те объекты, которые находятся внутри него.
Нажимаем правой кнопкой мыши и редактируем политику. Нам потребуется Конфигурация пользователя -> Настройка -> Параметры панели управления -> Принтеры -> Создать -> Общий принтер
Внутри: Действие — Обновить, Путь к общему ресурсу: Выбираем наш ранее созданный принтер, Если хотим чтобы при появлении у пользователя данный принтер сразу ставился по умолчанию, то ставим галочку Использовать принтер по умолчанию.
На вкладке Общие параметры: ставим галочку напротив Выполнять в контексте безопасности вошедшего пользователя, а так же Нацеливание на уровень элемента.
Переходим в Нацеливание, Нажимаем Создать элемент и выбираем пункт Группа Безопасности
Напротив поля Группа жмем три точки и находим группу безопасности соответствующую принтеру
И таким образом собираем все принтеры в групповой политике. Должно получиться что то наподобие этого:
Затем аналогично создаем те же принтеры, только в качестве действия выбираем не обновить, а удалить. В качестве группы безопасности выбираем нацеливание на RM-PRN-название принтера. Выглядит это следующим образом:
Работает это следующим образом: Для добавления принтера мы суём пользователя в группу PRN-Название принтера. Когда принтер пользователю более не нужен, мы удаляем его из группы PRN-Название принтера и добавляем в группу RM-PRN-Название принтера. Если этого не сделать, то принтер так и останется в устройствах, и рядом с ним будут отрастать каждый новый принтер, в группу которого мы будем добавлять пользователя. Поэтому, дабы не наводить хаос и бардак в устройствах и принтерах пользователя, следует соблюдать эти несложные правила. Ну и соответственно, если пользователю вдруг понадобился обратно его старый принтер, то удаляем пользака из группы RM-PRN-Название принтера и добавляем в группу PRN-Название принтера.
Все готово. Как можно заметить у меня как у админа компании группа которая добавляет все принтеры. И вот они все на месте под мои пользователем:
Какие подводные камни у данного способа:
- Достаточно большое время до появления принетра, так как политика применяется после входа выхода пользователя из системы, либо после перезагрузки, либо после применения команды gpupdate /force (но это очень вряд ли, так как политика гласит о том что Выполнять в контексте безопасности вошедшего пользователя)
- Принтер не отрастет у пользователя пока у него не будут установлены драйвера принтера. Решается легко: Под доменным админом цепляемся к пользователю к его локальному принт серверу и на вкладке драйверов добавляем необходимое. Либо через Панель управления в Устройствах и принтерах, добавление принтера, необходимый принтер отсутствует в списке, выбрать общий принтер по имени, \\имя_сервера\имя_принтера. В этом случае запросится пароль доменного администратора и после его ввода драйвера также подтянутся вместе с принтером. Кстати отличный способ когда надо добавить здесь и сейчас.
Какие плюсы:
- Отсутствие в необходимости ходить по пользователям, качать дрова с сайтов и сидеть ждать пока все это дело заведется
- Удобное управление через группы безопасности, Нужен принтер — добавил пользователя , проверил драйвера у пользователя, попросил перезагрузиться, всё.
- Удобное администрирование принтеров собранных на одном сервере.
Рассмотрим возможности автоматического подключения принтеров пользователям домена Active Directory с помощью групповых политик (GPO). Довольно удобно, когда при первом входе в систему у пользователя сразу устанавливаются и появляются в принтерах доступные ему устройства.
Рассмотрим следующую конфигурацию: в организации имеется 3 отдела, каждый отдел должен печатать документы на собственном цветном сетевом принтере. Ваша задача, как администратора, настроить автоматическое подключение сетевых принтеров пользователям в зависимости от отдела.
Содержание:
- Подключение принтеров пользователям через GPO
- Настройка политики подключения принтеров Point and Print Restrictions
Данная инструкция предполагает использованием Group Policy Preferences – расширения групповых политик, которые появились в Windows Server 2008. Соответственно уровень домена должен быть не менее Windows Server 2008, а клиенты не ниже Win XP SP3.
Подключение принтеров пользователям через GPO
Создайте три новые группы безопасности в AD (prn_HPColorSales, prn_HPColorIT, prn_HPColorManagers) и добавьте в нее пользователей отделов (наполнение групп пользователей можно автоматизировать по статье “Динамические группы в AD”). Вы можете создать группы в консоли ADUC, или с помощью командлета New-ADGroup:
New-ADGroup "prnHPColorSales" -path 'OU=Groups,OU=Moscow,DC=corp,dc=winitpro,DC=ru' -GroupScope Global –PassThru
- Запустите консоль редактора доменных политик (GPMC.msc), создайте новую политику prnt_AutoConnect и прилинкуйте ее к OU с пользователями;
Если у вас в домене используется небольшое количество сетевых принтеров (до 30-50), вы можете все их настраивать с помощью одной GPO. Если у вас сложная структура домена, есть сайты AD, используется делегирование прав администраторам филиалов, лучше создать несколько политик подключения принтеров, например по одной политике на сайт или OU.
- Перейдите в режим редактирования политики и разверните секцию User Configuration -> Preferences -> Control Panel Setting -> Printers. Создайте новый элемент политики с именем Shared Printer;
Если вы хотите подключать принтер по IP адресу (не через принт-сервера, а напрямую), выберите пункт TCP/IP Printer.
- Действие – Update. В поле Shared Path укажите UNC адрес принтера, например,
\\msk-prnt\hpcolorsales
(в моем примере все принтеры подключены к принт-серверу\\msk-prnt
). Здесь же вы можете указать, нужно ли использовать этот принтер в качестве принтера по-умолчанию; - Перейдите на вкладку Common и укажите, что принтер нужно подключать в контексте пользователя (опция Run in logged-on user’s security context). Также выберите опцию Item-level targeting и нажмите на кнопку Targeting;
- С помощью нацеливания GPP вам нужно указать, что данная политика подключения принтера применялась только для членов группы prn_HPColorSales. Для этого нажмите New Item -> Security Group -> в качестве имени группы укажите prn_HPColorSales;
Обратите внимание, что данное ограничение не запрещает любому пользователю домена подключить это принтер вручную в проводнике Windows. Чтобы ограничить доступ к принтеру, нужно изменить права доступа к нему на принт-сервере, ограничив возможность печати определенными группам.
- Аналогичным образом создайте политики подключения принтеров для других групп пользователей.
Есть еще старый раздел политик для настройки принтеров — Computer Configuration -> Policies -> Windows Settings -> Deployed Printers, однако этот метод установки принтеров пользователям не такой гибкий, как рассмотренный ваше способ с помощью GPP.
При использовании такой групповой политики, новые принтера будут устанавливаться у пользователей, только если на их компьютере уже установлен соответствующий принтеру драйвер печати. Дело в том, что у обычных пользователей нет прав на установку драйверов.
Настройка политики подключения принтеров Point and Print Restrictions
Для корректного подключения принтеров у любого пользователя, вам придется настроить политику Point and Print Restrictions и настроить адреса принт-серверов серверов, с которых пользователей разрешено устанавливать принтеры.
Напомню, что с 2016 года Microsoft с целью безопасности по-умолчанию запретила установку неподписанных и неупакованных драйверов (non-package-aware v3 printer drivers). Смотри статью Проблема подключения сетевых принтеров.
Если вы подключаете принтеры через пользовательский раздел политики, перейдите в раздел GPO User Configuration -> Policy -> Administrative Templates -> Control Panel -> Printers -> Printer -> Point and Print Restriction. Включите политику (Enabled) и настройте ее следующим образом:
- Users can only point and print to these servers –укажите список принт-серверов, с которых разрешено устанавливать драйвера (указываются FQDN имена, разделитель точка с запятой);
- When installing driver for new connection -> Do not show warning or elevation prompt
- When installing driver for existing connection -> Do not show warning or elevation prompt.
Аналогичным образом нужно включить политику Package Point and Print – Approved server в разделе User Configuration -> Policies -> Administrative Templates -> Printers и задать в ней список доверенных принт-серверов.
Теперь после перезагрузки компьютера при входе пользователя у него будет автоматически подключаться назначенный ему сетевой принтер.
Раньше для подключения принтеров пользователей мне приходилось использовать VBS /PowerShell скрипты установки и подключения принтеров, которые запускались как Startup скрипты GPO и возможностей фильтрации групповых политик. Однако использовать GPP политики для настройки принтеров на мой взгляд намного проще.
Время на прочтение4 мин
Количество просмотров62K
Введение
В данном топике я подробно расскажу о том, на какие грабли можно наткнуться при автоматической установке, удалении принтеров средствами Active Directory.
Подготовка AD к установке принтеров
Предполагается, что Active Directory настроена и функционирует. В ней созданы организационные единицы, заведены пользователи и добавлены компьютеры, у пользователей отсутствуют права администратора.
Для начала необходимо сделать 3 вещи:
- Разделить компьютеры по версии и архитектуре ОС.
- Выделить сетевую папку для хранения драйверов принтеров.
- Скачать и распаковать драйвера принтеров в сетевую папку для всех архитектур, созданную в пункте 2.
Разделяем компьютеры по арxитектуре и версии ОС
Я опишу случай, когда целевые компьютеры находятся в различных организационных единицах, при этом имеют разную архитектуру.
- Создаем группы безопасности соответствующие каждой архитектуре и версии ОС, пример: win_x64, win_x32. (Я использовал только 2 группы, так как в моем парке компьютеров существуют либо Windows XP x32, либо Windows 7 x64.).
- Создаем политики с понятными названиями и ограничиваем доступ к этим политикам только для групп безопасности из предыдущего пункта. Пример: «Политика принтеров x32», доступ только для членов группы win_x32.
- Применяем созданные политики ко всем организационным единицам. Самый лучший способ это сделать, по моему мнению — это поместить все OU внутри одной и к ней применить новые политики.
- Делаем компьютеры с архитектурой ОС x32 членами группы win_x32, для других архитектур и версий соответственно.
Таким образом, у нас появилась возможность применить определенную политику к компьютерам из разных OU (организационных единиц), что весьма удобно. Просто и надежно.
Разделение можно организовать и другими способами, но в данном посте я эти варианты рассматривать не буду.
Сетевая папка
Создается сетевая папка доступная всем пользователям и компьютерам домена. Думаю, этот этап подробно расписывать нет необходимости. Права на папку — только чтение.
Драйвера
- Скачиваем драйвера для всех версий и архитектур.
- Распаковываем их до состояния INF файлов. Грабля №1. Если с этим возникают проблемы, то чаще всего драйвера можно найти в скрытой шаре PRINT$ на машине где установлен принтер. Их можно взять оттуда.
- Копируем эти файлы у нашу сетевую папку. Для удобства разделяем по подпапкам.
Теперь можно переходить к развертыванию.
Развертывание
Развертывание будет делаться в 2 этапа:
- Создание скрипта установки драйвера.
- Создание скрипта подключения пользователя к принтеру.
Внимание! Грабля №2 Пункт 1 актуален только для Windows Vista и новее, так как драйвер на Windows XP ставится с правами обычного пользователя и не требует админских прав. Как ни странно.
Скрипт установки драйвера
Этот скрипт помещается в разделе «Конфигурация компьютера» — «Политики» — «Конфигурация Windows» — «Сценарии (запуск/завершение)» — «Автозагрузка»
Создаем файл .BAT такого содержания:
rundll32 printui.dll,PrintUIEntry /ia /m "<Имя принтера 1>" /h "x64" /v "Type 3 - User Mode" /f "<путь к INF файлу драйвера в сетевой папке/x64/>"
rundll32 printui.dll,PrintUIEntry /ia /m "<Имя принтера 2>" /h "x64" /v "Type 3 - User Mode" /f "<путь к INF файлу драйвера в сетевой папке/x64/>"
Грабля №3 Имя принтера можно и нужно узнать в свойствах сервера печати Windows на машине, где драйвер уже установлен. Наверняка есть и в inf файле.
Теперь драйвер принтера будет устанавливаться при загрузке системы автоматически. Если применить его ко всем компьютерам с Windows Vista и новее, то при срабатывании скрипта подключения принтера не выскочит ошибка о недостаточности прав.
Скрипт подключение принтеров
Этот скрипт помещается в разделе «Конфигурация пользователя» — «Политики» — «Конфигурация Windows» — «Сценарии (вход/выход из системы)» — «Вход в систему»
Для обеих архитектур скрипт одинаков.
rem Подключаем сетевой принтер "officeprint" на сервере server
rundll32 printui.dll,PrintUIEntry /in /n \\server\officeprint /q
rem Подключаем сетевой принтер "print" на сервере server1
rundll32 printui.dll,PrintUIEntry /in /n \\server1\print /q
rem Ставим его по умолчанию
rundll32 printui.dll,PrintUIEntry /in /n \\server1\print /y /q
Теперь при входе в систему пользователю автоматически подключатся принтеры и по умолчанию выберется принтер «print» на server1.
Автоматическое удаление принтеров
Все достаточно просто.
Создаем .BAT файл вот с таким содержанием.
REG DELETE "HKEY_CURRENT_USER\Printers\Connections" /f
Затем делаем его скриптом на выход пользователя из системы.
Когда пользователь в следующий раз зайдет в сеть, у него будут только те принтеры, которые установятся политикой.
Полезно при переезде принтера с одного принт-сервера на другой.
Грабля №4 Удаление ветки реестра лучше производить при выходе пользователя из системы, а не при входе перед подключением принтеров.
Для этого требуется перезагрузка службы печати, которая может перезагружаться достаточно долго. Это черевато ситуацией, когда служба еще не запустилась, а скрипт подключения уже сработал и вызвал ошибку.
Автоматическое удаление драйверов принтеров
Данная операция может потребоваться при обновлении драйвера.
Желательно удалять вручную, но если принтеров очень много, то делается это вот такой командой:
rundll32 printui.dll,PrintUIEntry /dd /m "<Имя принтера>"
Грабля №5 При повторном срабатывании скрипт с такой командой выдаст ошибку, которая может поставить пользователей в тупик.