Установка принтеров с помощью групповых политик Active Directory

Вы можете использовать групповые политики (GPO) для установки принтеров на компьютеры пользователей домена Active Directory. В этой статье мы покажем, как автоматически установить принтер пользователю домена при его входе на компьютер.

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

Подключение принтеров доменным пользователям через 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

  1. Запустите консоль редактора доменных политик (GPMC.msc), создайте новую политику prnt_AutoConnect и прилинкуйте ее к Organizational Unit (OU), в котором находятся целевые пользователи; GPO для подключения принтеров
    Если у вас в домене используется небольшое количество сетевых принтеров (до 30-50), вы можете использовать одну GPO для установки всех принтеров. Если у вас сложная структура домена, есть сайты AD, используется делегирование прав администраторам филиалов, лучше создать несколько политик подключения принтеров. Например, по одной GPO для каждого сайта или OU.
  2. Перейдите в режим редактирования политики и разверните секцию User Configuration -> Preferences -> Control Panel Setting -> Printers. Создайте новый элемент политики с именем Shared Printer;
    Если вы хотите подключать принтер по IP адресу (не через принт-сервер, а напрямую), выберите пункт TCP/IP Printer.
    Group Policy Preferences для автоматической установки принтеров
  3. Действие – Update. В поле Shared Path укажите UNC адрес принтера, например, \\msk-prnt\hpcolorsales (в моем примере все принтеры подключены к принт-серверу \\msk-prnt ). Здесь же вы можете указать, нужно ли использовать этот принтер в качестве принтера по-умолчаниюподключение сеетвого принтера с принте сервера gpo
    Вы можете опубликовать ваши принтеры в Active Directory. Для этого нужно включить опцию List in the Directory в настройках общего сетевого принтера на вкладке Sharing. опубликовать сетевой принтер в active directoryВ этом случае вы можете не указывать имя принетра вручную, а найти его поиском в AD. Просто нажмите кнопку с тремя точками при выборе принтера, нажмите кнопку Find now и выберите имя сетевого принтера из списка.поиск сетевых принтеров в домене ad
  4. Перейдите на вкладку Common и укажите, что принтер нужно подключать в контексте пользователя (опция Run in logged-on user’s security context). Затем выберите опцию Item-level targeting и нажмите на кнопку Targeting;
  5. С помощью нацеливания GPP вам нужно указать, что данная политика подключения принтера применялась только для членов группы prn_HPColorSales. Для этого нажмите New Item -> Security Group -> в качестве имени группы укажите prn_HPColorSales; назначение группы пользователей в политике
    Обратите внимание, что данное ограничение не запрещает любому пользователю домена подключить это принтер вручную в проводнике Windows. Чтобы ограничить доступ к принтеру, нужно изменить права доступа к нему на принт-сервере, ограничив возможность печати определенными группам.
  6. Аналогичным образом создайте политики установки сетевых принтеров для других групп пользователей. подключение принтеров пользователя через групповую политику
Есть еще старый раздел политик для настройки принтеров — Computer Configuration -> Policies -> Windows Settings -> Deployed Printers, однако этот метод установки принтеров пользователям не такой гибкий, как рассмотренный нами способ с помощью GPP.

сетевой принтер подключится автоматически через GPO при входе пользователя в windows

При использовании такой групповой политики, новые принтера будут устанавливаться у пользователей, только если на их компьютерах уже установлен соответствующий принтеру драйвер печати (драйвера нужно предварительно установить вручную или интегрировать напрямую в образ 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.

0x800702e4 ошибка установки драйвера принтера через групповую политику

Дело в том, что теперь пользователи Windows без прав администратора не могут установить принтера даже не смотря на настройки политики Point and Print Restriction.

Разрешить установку принтеров через GPO без прав администратора

В 2021 году в сервисе Print Spooler была обнаружена серьезная уязвимость (PrintNightmare CVE-2021-34527), для исправления которой Microsoft изменила поведение Windows при установке драйверов печати. Теперь пользователи без прав администратора не могут установить драйвера для принтера (KB5005033), в том числе с помощью параметра GPO Point and Print. Установку драйверов (подписанных и неподписанных) должны выполнять только пользователи с правами администратора.

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

  1. Перейдите в раздел Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options и измените значение параметра Devices: Prevent users from installing printer drivers на Enabled;
  2. Теперь перейдите в 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} . Это разрешит установку только драйверов печати;
  3. Перейдите в раздел 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;политика Point and Print Restriction
  4. Добавьте список ваших доверенных прнит-серверов в параметр Package Point and print — Approved servers;политика Package Point and Print – Approved server
  5. (Теперь самый важный пункт!!). Чтобы разрешить установку драйвера печати без прав админа нужно временно изменить значение параметра реестра 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

RestrictDriverInstallationToAdministrators параметр реестра разрешает установку драйверов принтера пользователям

В новых шаблонах административных ADMX файлов из Microsoft Security Baseline для этого параметра реестра добавлен отдельная опция GPO. Называется она Limits printer driver installation to Administrators (находится в разделе Computer Configuration -> Administrative Templates -> Printers). параметр групповой политики Limits printer driver installation to Administrators

Перейдите на вкладку Common и включите опцию Remove this item when it is no longer applied.

параметр реестра будет удален после отключения GPO
Теперь обновите настройки 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.

msiinstaller автоматическая установка драйвера принтера

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

Однако параметр RestrictDriverInstallationToAdministrators делает Windows уязвимой перед эксплоитом PrintNightmare. Поэтому рекомендуем сразу после установки принтеров пользователям вернуть его значение на 1. https://support.microsoft.com/en-us/topic/kb5005652-manage-new-point-and-print-default-driver-installation-behavior-cve-2021-34481-873642bf-2634-49c5-a23b-6d8e9a302872

Можно настроить такую схему: при первом входе пользователя на компьютер для пользователя отрабатывает логон скрипт (только один раз), который изменяет значение параметра RestrictDriverInstallationToAdministrators = 1. При следующем запуске этот скрипт проверяет значение RestrictDriverInstallationToAdministrators и, если оно равно 1, меняет его на 0. Таким образом все назначенные пользователю через GPO принтеры будут установлены и значение RestrictDriverInstallationToAdministrators будет автоматически изменено на безопасное.

Обратите внимание, что таким образом можно установить только подписанные драйвера принтеров (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 для установки принтеров пользователям намного проще.

Предыдущая статья Следующая статья


Комментариев: 55 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)