Ошибка "Невозможно завершить операцию (ошибка 0x00000709)" при попытке подключения принтера с сервера печати по CNAME

Print Server CNAME error 0x00000709Любая живая и развивающаяся ИТ-инфраструктура по сути своей является сущностью динамической. Поэтому администраторы инфраструктурных сервисов там, где это возможно, пытаются использовать механизмы, дающие возможность маневрирования сервисом с минимальными трудозатратами. К одним из таких механизмов при развёртывании сервера печати (роль Print Server) на базе Windows Server можно отнести использование в DNS псевдонима (запись типа CNAME) вместо реального имени сервера печати, как точки подключения клиентских компьютеров к сервису сетевой печати.

Например, имеется сервер печати на базе Windows Server 2012 R2 с реальным именем хоста KOM-PRS01. Создаём в DNS псевдоним для этого хоста, например, с именем KOM-PRN03. После этого пробуем на клиентском компьютере подключить сетевой принтер с этого принт-сервера с использованием созданного алиаса. В результате мы получим ошибку "Невозможно завершить операцию (ошибка 0x00000709)"

Access to Print Server by CNAME error Unable to complete operation 0x00000709

Возможная причина возникновения ошибки и метод её решения описан в статье KB979602 - Error message when you try to connect to a printer by using an alias (CNAME) resource record: "Windows couldn't connect to the printer"

Для решения проблемы создадим на принт-сервере параметр реестра DnsOnWire в ключе HKLM\SYSTEM\CurrentControlSet\Control\Print. Можно сделать это простой командой, запустив командную строку с правами Администратора, как приведён пример в статье:

reg add HKLM\SYSTEM\CurrentControlSet\Control\Print /v DnsOnWire /t REG_DWORD /d 1

Установка данной опции позволяет серверу печати использовать не полученные из кэша DNS-клиента данные, а использовать прямые запросы к DNS, несколько снижая при этом производительность работы службы печати, но давая преимущество использовать оперативные данные из DNS.

Для вступления изменений в силу дополнительной командой перезапустим службу "Диспетчер печати" (Print Spooler)

net stop Spooler && net start Spooler

Add CNAME support on Print Server and restart Spooler service

После этого подключение по DNS-алиасу должно пройти успешно

Windows 10 connectrd to Print Server by CNAME DNS alias

Использование DNS-алиаса вместо реального имени хоста сервера печати даст нам в перспективе возможность выполнить оперативный перенос всех сетевых принтеров с одного сервера печати на другой без необходимости переподключать в дальнейшем принтеры на клиентских компьютерах. Необходимость такого оперативного переноса на практике может быть продиктована разными ситуациями, начиная с таких как слияние/разъединение инфраструктур, заканчивая такими, как миграция сервера печати с одной версии ОС на другую.

Всего комментариев: 4 Комментировать

  1. Евгений Столепов /

    Добрый день!Столкнулся с данной проблемой на 2012r2, сделал все как написано, по UNC подключаюсь а по CNAME нет, значения в реестре проверил, создано,е
    сть идеи куда копать?

    1. Алексей Максимов / Автор записи

      Доброго времени года, Евгений. Всё описанное в заметке работает на Windows Server 2012 R2 Standard EN (со всеми установленными c Windows Update обновлениями). Клиенты при проверке использовались Windows 10 Pro RU (от RTM до v1903) и Windows 7. На более старых клиентах проверку не делали. Возможно в Вашем случае на стороне самих клиентов есть какие-то проблемы/ограничения. Проверяйте корректность работы DNS. Изучайте эвент-логи на стороне сервера и клиента.

  2. Вячеслав /

    Спасибо за информацию, век живи - век учись.

  3. Александр /

    Спасибо, сделал все по вашей инструкции и заработало. Только у меня принтер был расшарен на обычной WIndows 10, а подключались к нему два компа с семеркой и десяткой (оба ругались на ошибку 709). А поиск что в гугле и яндексе выводит страницы с ответами типа идите сюда и удаляйте там все HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices - но не помогало

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