
Вы можете использовать групповые политики (GPO) для установки и подключения общих принтеров к определенным пользователям, компьютерам и группам в домене Active Directory. В этой статье мы рассмотрим, как автоматически подключать общий принтер для пользователя домена при входе на компьютер Windows.
Рассмотрим следующую конфигурацию: в организации есть 3 отдела. Пользователи каждого отдела должны печатать документы на собственном цветном сетевом принтере. Как администратор, вы должны настроить автоматическое развертывание общих принтеров для пользователей в зависимости от их отдела.
Развертывание принтеров для пользователей домена с помощью групповой политики
Создайте три новые группы безопасности в AD (SharedPrinter_Sales, SharedPrinter_IT, SharedPrinter _Managers) и добавьте в них пользователей отдела (вы можете автоматически добавлять пользователей в доменные группы, следуя статье «Создание динамической группы в Active Directory»). Вы можете создавать группы в консоли Active Directory Users and Computers (dsa.msc
, ADUC) или с помощью New-ADGroup
команды:
New-ADGroup "SharedPrinter_Sales" -path 'OU=Groups,OU=Paris,DC=woshub,DC=com' -GroupScope Global –PassThru
- Запустите редактор групповой политики домена (
GPMC.msc
), создайте новую политику print_AutoConnect и свяжите его с OU с целевыми пользователями;Если у вас в домене небольшое количество общих сетевых принтеров (до 30-50), вы можете настроить их с помощью одного GPO. Если у вас сложная структура домена с сайтами AD, организационными единицами (OUs) и делегированием некоторых задач администрирования AD администраторам филиалов, лучше создать несколько политик развертывания принтеров. Например, по одной политике для каждого сайта AD или организационной единицы (OU). - Переключитесь в режим редактирования политики и разверните окно Конфигурация пользователя -> Предпочтения -> Настройка панели управления -> Принтеры. Создайте новый элемент политики, выбрав Новый -> Общий принтер;
Если вы хотите подключить сетевой принтер по его IP-адресу (напрямую, без сервера печати), выберите Принтер TCP/IP.
- Укажите Обновить как действие. В Общий путь В поле введите UNC-адрес вашего общего принтера, например,
\\srv-par-print\hpsales
(в моем случае все принтеры подключены к серверу печати\\srv-par-print
). Здесь можно указать, следует ли установить этот принтер в качестве принтера по умолчанию;Вы можете опубликовать общие принтеры в Active Directory. Для этого включите опцию Список в каталоге опция в настройках принтера на Общий доступ вкладка.В этом случае вы можете найти свой принтер с помощью поиска в AD (нет необходимости вводить имя принтера вручную). Просто нажмите кнопку с тремя точками, когда вы выберете принтер, нажмите кнопку Найти сейчас и выберите имя принтера точек из списка.
- Перейдите в раздел Общие на вкладке и укажите, что принтер должен быть подключен в текущем пользовательском контексте (Запуск в контексте безопасности вошедшего в систему пользователя). Также проверьте Нацеливание на уровне предмета опция и щелчок Таргетинг;
- Используя таргетинг GPP, необходимо указать, что эта политика подключения принтера должна применяться только к членам группы SharedPrinter_Sales. Чтобы сделать это, перейдите в раздел Новый элемент -> Группа безопасности и введите SharedPrinter_Sales в качестве имени группы; Обратите внимание, что это ограничение не мешает пользователю домена вручную подключить этот принтер с помощью File Explorer. Чтобы ограничить доступ к принтеру, необходимо изменить разрешения безопасности принтера на сервере печати и разрешить печать только для определенных групп.
- Аналогичным образом создайте параметры установки сетевого принтера для других групп пользователей.
Проверьте, что общие сетевые принтеры теперь подключаются автоматически при входе пользователей на компьютеры Windows, подключенные к домену.
При использовании этой групповой политики новые принтеры будут устанавливаться пользователям только в том случае, если соответствующий драйвер печати уже установлен на их компьютерах (драйверы должны быть сначала установлены вручную или интегрированы непосредственно в образ Windows).
Если для этого принтера не установлен драйвер, то принтер, назначенный через GPO, не будет добавлен пользователю. В этом случае в журнале событий появится событие с идентификатором 4096 -> Журнал приложений:
Source: Group Policy PrintersThe user 'HPLaserJet400' preference item in the 'prnt_AutoConnect}' 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 году была обнаружена критическая уязвимость в службе спулера печати, для устранения которой Microsoft изменила поведение Windows по умолчанию при установке драйверов печати (PrintNightmare CVE-2021-34527). Теперь пользователи без прав администратора не могут устанавливать драйверы принтеров (KB5005033), в том числе с помощью опции GPO Point and Print Restriction. Драйверы Windows (подписанные и неподписанные) должны устанавливаться только администраторами.
Однако существует обходной путь, который позволит пользователям, не являющимся администраторами, установить драйверы принтера. Для этого необходимо изменить GPO.
- Перейдите в следующий раздел GPO Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options. Включите параметр Устройства: Запретить пользователям устанавливать драйверы принтеров;
- Теперь перейдите в раздел Computer Configuration -> Policies -> Administrative Templates -> System -> Driver Installation. Добавьте GUID класса устройства принтера в Разрешите неадминистраторам устанавливать драйверы для этих классов устройств параметр
{4658ee7e-f050-11d1-b6bd-00c04fa372a7}
и{4d36e979-e325-11ce-bfc1-08002be10318}
. Это позволит установить только драйверы печати; - Перейдите в Конфигурация компьютера -> Политика -> Административные шаблоны -> Принтеры. Включить политику Ограничение точек и печати. Здесь необходимо указать список ваших серверов печати (Пользователи могут указывать и печатать только на этих серверах), с которых разрешено устанавливать драйверы печати. Выберите Не показывать предупреждение или приглашение к повышению для двух оставшихся вариантов;
- Добавьте список доверенных серверов печати в параметр Пакет Точка и печать — Утвержденные серверы;
- (Теперь самый важный момент!!!). Чтобы разрешить установку драйверов принтера без прав администратора (для неадминистративных пользователей), необходимо временно изменить значение параметра RestrictDriverInstallationToAdministrators параметр реестра для 0.
На автономном компьютере этот параметр реестра можно изменить с помощью команды:
reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" /v RestrictDriverInstallationToAdministrators /t REG_DWORD /d 0 /f
Чтобы изменить этот параметр реестра на компьютерах пользователей с помощью GPO, нужно создать новое правило привилегий групповой политики в разделе Конфигурация компьютера -> Предпочтения -> Параметры Windows -> Реестр. Создайте параметр реестра со следующими настройками:
Action: Replace Hive: HKEY_LOCAL_MACHINE Key path: Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint Value name: RestrictDriverInstallationToAdministrators Type: REG_DWORD Value: 0

Перейдите в раздел Общие на вкладке и включите опцию Удалить этот элемент, когда он больше не применяется.
Теперь обновите параметры GPO на клиентах (повторно войдите в систему или выполните команду gpupdate /force
) и проверьте, что драйверы с серверов печати теперь устанавливаются автоматически. События MsiInstaller должны появиться в журнале приложений:
EventID 1040 Beginning a Windows Installer transaction: C:\Windows\system32\spool\DRIVERS\x64\3\CIOUM64.MSI. Client Process Id: 7240.
Такой GPO позволит любому пользователю, не являющемуся администратором, устанавливать общие принтеры и драйверы с указанных серверов печати без запроса на повышение прав или каких-либо уведомлений.
Вы можете запустить сценарий входа в систему (только один раз) при первом входе в систему для каждого пользователя, который установит значение RestrictDriverInstallationToAdministrators = 1
. При следующем запуске сценарий проверит значение RestrictDriverInstallationToAdministrators и, если оно равно 1, изменит его на 0. Таким образом, все принтеры, назначенные пользователю через GPO, будут установлены при первом входе, а значение RestrictDriverInstallationToAdministrators будет автоматически изменено на безопасное состояние.
Обратите внимание, что таким образом можно установить только подписанные драйверы принтеров (драйверы печати с поддержкой пакетов v3) (со значением Packaged=True в параметре Драйверы раздел консоли управления печатью — printmanagement.msc
). См. статью Невозможно установить драйверы печати, не поддерживающие пакеты.
Если вы попытаетесь установить принтер с неподписанным драйвером через GPO, он не будет развернут, несмотря на параметр RestrictDriverInstallationToAdministrators:
The user 'HP2500' 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.