Управление принтерами в корпоративной сети через групповую политику (GPO) — стандартная практика для системных администраторов. Однако не всегда очевидно, как правильно удалить принтер, особенно если он был развернут через политики ранее. Некорректное удаление может привести к "призрачным" устройствам в списке, ошибкам печати или конфликтам драйверов. Эта статья покрывает все способы удаления принтеров через GPO, включая скрипты, реестр и встроенные инструменты Windows.
Мы разберём не только базовые методы, но и нюансы: почему принтер может оставаться в системе после применения политики, как очистить кэш печати, и что делать, если GPO не применяется. Инструкции актуальны для Windows Server 2012 R2/2016/2019/2022 и клиентских ОС Windows 10/11 в доменной среде. Если вы администрируете смешанную среду с macOS или Linux, часть методов также применима через Samba или CUPS.
Почему нельзя просто удалить принтер вручную
Многие администраторы сталкиваются с ситуацией, когда принтер, удалённый через Панель управления или Настройки, появляется снова после перезагрузки или обновления политик. Это происходит потому, что:
- 🔄 Групповая политика переустанавливает принтер при следующем цикле обновления (каждые 90-120 минут или при запуске системы).
- 📛 Драйвер принтера остаётся в системе, что может вызывать конфликты при подключении новых устройств.
- 🖨️ "Призрачные" принтеры сохраняются в реестре (
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers) даже после видимого удаления. - 📡 Политика "PushPrinterConnections" активно развёртывает принтеры независимо от локальных действий пользователя.
Единственный надёжный способ — удалить принтер на уровне групповой политики, которая его изначально развернула. В противном случае вы рискуете получить "зомби"-устройства, которые будут периодически возвращаться, особенно после обновлений Windows или смены сетевых настроек.
Способ 1: Удаление принтера через редактор групповой политики (GPM)
Если принтер был развёрнут через Group Policy Preferences (GPP), его можно удалить тем же способом. Этот метод подходит для принтеров, добавленных через Пользовательская конфигурация → Настройки → Панель управления → Принтеры.
Откройте Редактор управления групповой политикой (
gpmc.msc) на контроллере домена.Найдите политику, которая развёртывает принтер. Обычно она находится в разделе
Объекты групповой политикиили привязана к подразделению (OU) с пользователями/компьютерами.Перейдите в
Конфигурация пользователя → Настройки → Панель управления → Принтеры(илиКонфигурация компьютера, если принтер развёртывался на уровне машины).Выделите принтер, который нужно удалить, кликните правой кнопкой и выберите
Удалить.Сохраните изменения и обновите политики на клиентских машинах командой:
gpupdate /force
Если принтер был развёрнут через скрипт входа (например, VBScript или PowerShell), удалите соответствующий скрипт из политики в разделе Конфигурация пользователя → Политики → Конфигурация Windows → Скрипты.
Убедитесь, что принтер не используется в других политиках|Создайте резервную копию политики (экспорт в XML)|Проверьте зависимости (например, драйверы)|Уведомите пользователей о временном отсутствии принтера-->
Способ 2: Удаление через PowerShell (автоматизация)
Для массового удаления принтеров или если GPP не подходит, используйте PowerShell. Этот метод гибкий и позволяет удалять принтеры по имени, пути или другим критериям.
Скрипт ниже удаляет принтер по имени на локальном компьютере. Чтобы применить его через GPO:
Создайте новый
.ps1-файл с содержимым:$printerName = "Имя_принтера"if (Get-Printer -Name $printerName -ErrorAction SilentlyContinue) {
Remove-Printer -Name $printerName
Write-Output "Принтер $printerName удалён."
} else {
Write-Output "Принтер $printerName не найден."
}
Поместите скрипт в сетевую папку, доступную всем клиентам (например,
\\domain\NETLOGON\Scripts\).Создайте новую политику или отредактируйте существующую, добавив скрипт в
Конфигурация компьютера → Политики → Конфигурация Windows → Скрипты → Запуск.
Для удаления всех сетевых принтеров используйте:
Get-Printer | Where-Object {$_.Type -eq "Connection"} | Remove-Printer -Force
Если скрипт не выполняется из-за политики выполнения PowerShell, добавьте в начало файла строку Set-ExecutionPolicy Bypass -Scope Process -Force.
Способ 3: Удаление через реестр (для упрямых принтеров)
Если принтер не удаляется стандартными методами, его записи могут оставаться в реестре. Внимание: редактирование реестра — рискованная операция, которая может привести к нестабильной работе системы. Рекомендуется создать резервную копию перед изменениями.
Чтобы удалить принтер через реестр:
Откройте
regeditна целевом компьютере.Перейдите в раздел:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PrintersНайдите папку с именем принтера и удалите её.
Удалите соответствующие записи в:
HKEY_CURRENT_USER\Printers\Connections
Для автоматического удаления через GPO:
Создайте
.reg-файл с командами удаления (пример ниже).Разверните его через политику в разделе
Конфигурация компьютера → Настройки → Реестр.
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\Имя_принтера]
[-HKEY_CURRENT_USER\Printers\Connections\Имя_принтера]
Что делать, если нет прав на редактирование реестра?
Если у вас нет административных прав, попробуйте:
1. Запустить regedit от имени администратора (Shift + правый клик → "Запуск от другого пользователя").
2. Использовать psexec из Sysinternals для повышения прав: psexec -i -s regedit.
3. Обратиться к доменному администратору для развёртывания изменений через GPO.
Способ 4: Удаление через командную строку (printui.dll)
Утилита printui.dll — мощный инструмент для управления принтерами из командной строки. Она позволяет удалять принтеры, драйверы и порты без графического интерфейса.
Команда для удаления принтера по имени:
rundll32 printui.dll,PrintUIEntry /dn /n "\\Имя_сервера\Имя_принтера"
Примеры использования:
- 🖥️ Удаление локального принтера:
rundll32 printui.dll,PrintUIEntry /dn /n "HP LaserJet P4015" - 🌐 Удаление сетевого принтера:
rundll32 printui.dll,PrintUIEntry /dn /n "\\print-server\Xerox-Office" - 🗑️ Удаление всех принтеров (осторожно!):
for /f "tokens=2 delims=," %G in ('wmic printer get name /value ^| find "="') do rundll32 printui.dll,PrintUIEntry /dn /n "%G"
Чтобы развернуть команду через GPO, создайте .bat-файл и добавьте его в политику как скрипт запуска (Конфигурация компьютера → Политики → Конфигурация Windows → Скрипты → Запуск).
Команда printui.dll работает на всех версиях Windows, включая Windows 11, и не требует установки дополнительных компонентов.
Ошибки при удалении принтеров через GPO и их решения
Даже после правильного удаления принтера через групповую политику могут возникать проблемы. Ниже — таблица распространённых ошибок и способов их устранения.
| Ошибка | Причина | Решение |
|---|---|---|
Принтер появляется снова после gpupdate |
Политика развёртывания всё ещё активна или применяется другая политика | Проверьте приоритет политик через gpresult /h report.html и отключите конфликтующие |
| Ошибка "Доступ запрещён" при удалении | Недостаточно прав или принтер используется другим процессом | Запустите команду от администратора или перезагрузите службу Spooler (net stop spooler & net start spooler) |
| Принтер удаляется, но драйвер остаётся | Драйвер установлен отдельно от принтера | Удалите драйвер через printui.dll /dl или pnputil /delete-driver |
| Политика не применяется на клиентских ПК | Проблемы с репликацией SYSVOL или правами | Проверьте журналы Event Viewer → Windows Logs → System на ошибки GroupPolicy |
| Принтер удаляется, но порт остаётся | Порт не привязан к политике и требует ручного удаления | Удалите порт через printui.dll /dn /q /x или вручную в Панель управления → Устройства и принтеры → Настройка сервера печати |
Если принтер удаляется, но пользователи всё равно его видят, проверьте:
- 🔍 Кэш профиля пользователя — иногда принтеры сохраняются в
%APPDATA%\Microsoft\Windows\Printers. - 📡 Локальные политики — если на ПК применены Local Group Policies, они могут переопределять доменные.
- 🔄 Отложенное применение GPO — дождитесь следующего цикла обновления или запустите
gpupdate /sync.
Чтобы ускорить применение политик, используйте команду gpupdate /force /boot — она принудительно обновит политики и перезагрузит компьютер.
Как проверить, что принтер действительно удалён
Удаление принтера через GPO не всегда очевидно для конечных пользователей. Чтобы убедиться, что принтер полностью удалён:
Проверьте список принтеров на клиентском ПК:
Get-Printer | Format-Table Name, Type, ComputerNameУбедитесь, что драйвер удалён:
Get-PrinterDriver | Where-Object {$_.Name -like "Имя_драйвера"}Проверьте реестр на наличие записей (см. Способ 3).
Запустите
gpresult /rи убедитесь, что политика удаления применена.
Если принтер всё ещё отображается, но не печатает, возможно, остался "призрачный" порт. Чтобы его удалить:
Откройте
Панель управления → Администрирование → Службыи остановитеДиспетчер печати.Удалите файлы из
C:\Windows\System32\spool\PRINTERS\.Перезапустите службу и проверьте список портов в
printui.dll /s /t2.
Как удалить принтер для конкретного пользователя?
Если нужно удалить принтер только для одного пользователя, используйте политику с фильтрацией по безопасности (Item-Level Targeting в GPP). Либо применяйте скрипт через Конфигурация пользователя, а не компьютера.
FAQ: Частые вопросы по удалению принтеров через GPO
Можно ли удалить принтер через GPO, если он был установлен вручную?
Да, но только если принтер подключён как сетевой (через UNC-путь, например, \\server\printer). Локальные принтеры (подключённые по USB или LPT) через GPO не управляются. Для них используйте скрипты или printui.dll.
Как удалить принтер для всех пользователей, кроме администраторов?
Используйте фильтрацию по безопасности в GPO:
- В политике удаления принтера перейдите на вкладку
Безопасность. - Уберите галочку
Применятьдля группыАдминистраторы домена. - Добавьте группу
Пользователи доменас правомЧтениеиПрименение групповой политики.
Что делать, если после удаления принтер возвращается при следующем входе?
Это означает, что принтер развёртывается другой политикой. Проверьте:
gpresult /h report.html
Откройте сгенерированный report.html и найдите раздел Group Policy Objects. Ищите политики с настройками принтеров в User/Computer Settings → Preferences → Control Panel Settings → Printers.
Как удалить драйвер принтера через GPO?
Драйверы удаляются отдельно от принтеров. Используйте команду в скрипте:
pnputil /delete-driver oem*.inf /uninstall /force
Или через printui.dll:
rundll32 printui.dll,PrintUIEntry /dl /n "Имя_драйвера"
Чтобы развернуть это через GPO, добавьте команду в Скрипты запуска/выключения.
Можно ли удалить принтер на macOS или Linux через GPO?
Нет, GPO работает только в среде Windows. Для macOS используйте:
- Скрипты
lpadmin -x(дляCUPS). - Утилиты управления, такие как Jamf или Mosyle.
Для Linux подойдёт:
lpadmin -x Принтер_Имя
Или настройка Samba для синхронизации с доменом.