Не может изменить имя принтера (WERR_ACCESS_DENIED)

У меня есть попытка Основных проблем к сетевому ресурсу принтер, который я подключил к своей машине Ubuntu (остальная часть машин в сети все различные версии Windows). Я ругался с Samba и сделал некоторые успехи: при попытке к тому, "Добавляют Принтеры" от машин Windows, они могут на самом деле видеть его при выполнении сетевого поиска. Однако Windows неизменно просит драйвер ("Сервер для принтера, не установили корректный драйвер принтера..."), и затем когда я выбираю один, он поставляет, сообщение об ошибке "Windows не может соединиться с принтером. Удостоверьтесь, что Вы ввели имя правильно..."

Я провел некоторое исследование, и я нашел, что часто это происходит из-за принтера, не " называемого правильно": с помощью enumprinters, это имеет \LOCALHOST вместо соответствующего имени. Предложенное исправление должно переименовать принтер с помощью setprintername (rpcclient). Однако я не могу сделать этого: Я всегда получаю ошибку WERR_ACCESS_DENIED.

Дополнительное исследование в области исправления ТОЙ проблемы предлагает "предоставить" себе соответствующие полномочия (SePrintOperatorPrivileges, с помощью сети... пользователь... rpc предоставление прав)..., но я не могу сделать этого также: Я получаю "Неудавшийся к полномочиям для [пользователя] (NT_STATUS_ACCESS_DENIED)" сообщение. Какого черта я отсутствую? Любая справка ценилась бы, поскольку это - критическая функция меня.Заранее спасибо!

1
задан 16 April 2014 в 15:09

1 ответ

Хорошо, это взяло исследование от нескольких сайтов/страницы. Я узнаю, что печать сети с помощью Samba в смешанной среде Windows Ubuntu может быть сложным делом, и это не может решить общие проблемы..., но если признаки являются тем же, можно дать этому решению выстрел. (Для всего кодирования ниже, замените своим именем компьютера "имя компьютера" и своим именем для входа в систему Ubuntu для "имени пользователя", и т.д.),

При попытке добавить сетевой / общий принтер, подключенный к машине Ubuntu клиенту Windows (таким образом, можно распечатать от машины Windows), сообщение об ошибке из Windows, данного выше ("Windows не может соединиться с принтером. Удостоверьтесь, что Вы ввели имя правильно..."), может указать, что название принтера, сообщаемое машиной Ubuntu, является неправильным. Windows, кажется, является очень привередливым о названии сетей и сетевых ресурсов. От терминала, с помощью команды rpcclient localhost, затем enumprinters, можно видеть вывод как это:

$ rpcclient> enumprinters
флаги: [0x800000]
имя: [\LOCALHOST]
описание: [\LOCALHOST\HP-SuperJet-10, HP SuperJet 10, Hewlett-Packard HP> SuperJet 10]
комментарий: [Hewlett-Packard HP SuperJet 10]

Заметьте, что поле имени только содержит "\LOCALHOST \"... это неполно; Ваше название принтера должно также быть в скобках (в этом случае, "\LOCALHOST\HP-SuperJet-10").

Предложенное решение состоит в том, чтобы использовать команду setprintername в rpcclient, но это может получить Вас ошибка WERR_ACCESS_DENIED вместо WERR_INVALID_PRINERNAME. Это, казалось бы, указало бы что Вы как пользовательское отсутствие полномочия внести изменения системного принтера. Но после прохождения через большого количества rigamarole, пытающихся дать мне права (например, с помощью SePrintOperatorPrivileges) и получая дополнительные ошибки (NT_STATUS_ACCESS_DENIED), я проверил (сеть rpc, права перечисляют-S Имя компьютера-U Имя пользователя), и нашел, что я был уже настроен с теми правами! Это - то, что сообщает мне, что что-то еще было неправильно.

Решение, которое я нашел, состоит в том, чтобы добавить строку к конфигурационному файлу Samba в [глобальном] разделе. Из окна терминала введите gksu gedit/etc/samba/smb.conf

Строка для добавления:

вынудите пользователя = имя пользователя

Сохраните свои изменения, закройте gedit программу, и затем в окне терминала, перезапустите необходимые сервисы:

сервис sudo smbd перезапуск
сервис sudo nmbd перезапуск

Это должно позволить/осуществить Вашим полномочиям изменить имя принтера. Введите rpcclient localhost для возвращения к rpcclient. Теперь, вот другая выгода, которую я нашел: Поскольку setprintername управляют, чтобы казалось, что необходимо ввести имя принтера ДВАЖДЫ... просто ввод setprintername =, HP-SuperJet-10 не работал; после тестирования и сбоя снова, регистрация enumprinters rpcclient показала, что название принтера ВСЕ ЕЩЕ только показало "\LOCALHOST \". (Я предполагаю здесь, но это может быть, потому что это - правильный синтаксис для команды setprintername). Войдите:

setprintername = yourprintername yourprintername

Для меня "yourprintername" был "HP-SuperJet-10". Команда enumprinters на этот раз должна показать что-то вроде этого:

$ rpcclient> enumprinters флаги: [0x800000]
имя: [\\LOCALHOST\HP-SuperJet-10]
описание: [\LOCALHOST\HP-SuperJet-10, HP SuperJet 10, Hewlett-Packard HP SuperJet 10]
комментарий: [Hewlett-Packard HP SuperJet 10]

Если Вы видите надлежащее название принтера, добавленное в конец LOCALHOST в поле имени, Вы сделали это. Я нашел, что при применении этой фиксации, мои машины Windows могут даже видеть принтер в сети каждый раз, когда я пытаюсь к тому, "добавьте принтер" от них.

Дальнейшие примечания: это решение только работало до сих пор со мной на машинах Windows Vista. Windows 7, кажется, дает мне различные сообщения об ошибках, которые почти наверняка потребуют другого решения. Пожелайте мне удачи!

0
ответ дан 27 August 2019 в 18:10

Другие вопросы по тегам:

Похожие вопросы: