Развертывание принтеров среди пользователей домена и компьютеров с помощью GPO

Автор: | 17 июня, 2024

Deploying Printers to Domain Users and Computers with GPO Active Directory

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

Сценарий: Небольшая организация до 30 сетевых принтеров МФУ

  • На сервере печати установлена роль Службы печати и документов.
  • Установлен и опубликован принтер в домене с нужными драйверами
  • Имеются необходимые права на домен контроллере, для создания доменной политики

1)Запустите консоль редактора доменных политик (GPMC.msc), создайте новую политику US_Add-printer и присоедините- прилинкуйте ее к Organizational Unit (OU), в котором находятся целевые пользователи;

GPMC-create-policy1

2)Перейдите в режим редактирования политики и разверните секцию User Configuration -> Preferences -> Control Panel Setting -> Printers. Создайте новый элемент политики с именем Shared rinter Общий принтер; Конфигурация пользователя -> Настройка -> Параметры панели управления — > Принтеры

3)Действие – Update Обновить. В поле Shared Path укажите UNC адрес принтера, например, \\msk-prnt\hpcolorsales (в моем примере все принтеры подключены к принт-серверу \\dc1.5house.loc ). Здесь же вы можете указать, нужно ли использовать этот принтер в качестве принтера по-умолчанию

4)Перейдите на вкладку Common Общие параметры и укажите, что принтер нужно подключать в контексте пользователя (опция Run in logged-on user’s security context). Выполнять в контексте безопасности вошедшего пользователя. Затем выберите опцию Item-level targeting и нажмите на кнопку Targeting Нацеливание;

5)С помощью нацеливания GPP вам нужно указать, что данная политика подключения принтера применялась только для членов группы print-p-pha01. Для этого нажмите New Item -> Security Group -> Создать элемент — > Группа Безопасности в качестве имени группы укажите print-p-pha01;

Обратите внимание, что данное ограничение не запрещает любому пользователю домена подключить это принтер вручную в проводнике Windows. Чтобы ограничить доступ к принтеру, нужно изменить права доступа к нему на принт-сервере, ограничив возможность печати определенными группам.

Есть еще старый раздел политик для настройки принтеров — Computer Configuration -> Policies -> Windows Settings -> Deployed Printers, однако этот метод установки принтеров пользователям не такой гибкий, как рассмотренный нами способ с помощью GPP.

Откройте ветку групповых политик Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options, в которой найдите параметр Devices: Prevent users from installing printer drivers (Устройства: Запретить пользователям установку драйверов принтера). Активируйте политику и отключите ее применение (значение Disabled).

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

Если для данного принтера не установлен драйвер, то назначенный через GPO принтер не будет добавлен пользователю. При этом в журнале eventvwr.msc Event Log -> Application появится событие с Event ID 4096 и 4098:

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 .

Элемент предпочтения пользователь «Pantum-MS6550NW-Series» в объекте групповой политики «ws-AddPrinter {9C286E7F-F55A-4817-B462-CC408DCC8C4D}» не применен по причине ошибки с кодом ‘0x80070bcb Указанный драйвер принтера не найден в системе. Необходимо скачать драйвер.’ Эта ошибка была отключена.

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

cmd bat скрипт добавление драйверов устройства

pnputil /add-driver "\\Path to print drivers\*.inf" /subdirs
0)Проверка на дубликат 
@echo off
set folder=%WINDIR%\system32\spool\drivers\x64\PCC\
set filename=m6500pr.inf_amd64_*.cab
if exist "%folder%%filename%" (
    echo File found: "%filename%" exists in "%folder%"
) else (
    echo File not found: "%filename%" does not exist in "%folder%"
)
1)копирование файла пакета драйвера с сетевого ресурса \\dc1.5house.loc\print$
xcopy \\dc1.5house.loc\print$\x64\PCC\m6500pr.inf_amd64_*.cab C:\Windows\temp\ /e /y /k /r /d /i
xcopy \\dc1.5house.loc\print$\x64\PCC\m6500pr.inf_amd64_*.cab %temp% /e /y /k /r /d /i
2)Распаковка файла по маске .cab в папку
создаем папку
Для много файлового CAB-архива требуется указать папку назначения.
cd %temp%
mkdir m6500pr
expand *.cab  %temp%\m6500pr -f:*
---
expand *.cab .\m6500pr.inf_amd64
extrac32 file.cab /L .\m6500pr.inf_amd64

3)Установка драйвера из папки шаг 2
%windir%\system32\pnputil.exe /add-driver %temp%\m6500pr\*.inf /subdirs /install
---
%windir%\system32\pnputil.exe /add-driver C:\temp*.inf /subdirs /install
4)Установка принтера
timeout /t 20
rundll32 printui.dll,PrintUIEntry /in /n\\dc1.5house.loc\Pantum-MS6550NW-Series

Добавление принтера через скрипт powershell

$ServerName = 'PRINTERSERVR'
$SPrinters = Get-PrinterDriver -ComputerName $ServerName
$CPrinters = Get-PrinterDriver 
$ListPrinters = $SPrinters | 
    ? {$_.name -notin $CPrinters.name -and $_.Manufacturer -ne 'Microsoft'}

$ListPrinters | 
    % {
        If (![String]::IsNullOrWhiteSpace($_.InfPath)) {
            $sInfPath = "\\" +  $ServerName + "\" + ($_.InfPath -replace 'C:', 'C$')
            $spath = Test-Path $sInfPath
            PNPUtil.exe /add-driver $sInfPath /install
            Add-PrinterDriver -Name $_.Name
        }
    }

C:\Windows\System32\Printing_Admin_Scripts https://www.techrepublic.com/article/how-to-take-advantage-of-the-hidden-vbscript-print-utilities-in-windows-10/

Перенос и Экспорт принтеров и драйверов используя Windows Printmanag

Установка драйвера скрипт vbScript

strComputer = "."

scriptdir = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
infPath = CreateObject("Scripting.FileSystemObject").BuildPath(scriptdir, "BM5100.inf")

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
objWMIService.Security_.Privileges.AddAsString "SeLoadDriverPrivilege", True

Set objDriver = objWMIService.Get("Win32_PrinterDriver")

objDriver.Name = "Pantum BM5100ADN Series PCL6"
objDriver.Infname = infPath
objDriver.AddPrinterDriver(objDriver)

Добавить нужные драйвера на WSUS сервер

https://woshub.com/deploy-printers-to-users-gpo/

https://winitpro.ru/index.php/2019/04/02/gpo-ustanovka-printerov/

Добавить комментарий

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