Назад | Перейти на главную страницу

Подключение с помощью Samba к общему ресурсу Windows возвращает «NT_STATUS_DUPLICATE_NAME»

Я установил общий каталог на моем компьютере с Windows и дал права на полный контроль для username @ workgroup.

Когда я пытаюсь подключиться к машине Windows с Linux с помощью smbclient, я получаю сообщение об ошибке NT_STATUS_DUPLICATE_NAME. Вот стенограмма:

$ smbclient -U username -W workgroup -L //windows-machine
Enter username's password: 
Domain=[workgroup] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
tree connect failed: NT_STATUS_DUPLICATE_NAME

Если я намеренно ввожу неправильное имя пользователя, пароль или рабочую группу, я получаю другую ошибку: NT_STATUS_LOGON_FAILURE. Так что, похоже, я правильно понимаю другую информацию.

Я помещаю в / etc / hosts запись, указывающую windows-machine на свой IP-адрес. NetBIOS-имя компьютера с Windows отличается.

Кто-нибудь знает, что означает эта ошибка?

NetBIOS-имя компьютера с Windows отличается

Это твоя проблема. Это легко исправить с помощью взлома реестра на машине с Windows. Видеть http://support.microsoft.com/kb/281308 для подробностей.

Обновить

Исходная статья поддержки, указанная выше, исчезла (спасибо Microsoft). Новая статья Не удалось получить доступ к общему ресурсу файлового сервера SMB через псевдоним DNS CNAME.

Джорил также указывает, что у сервера может быть несколько имен NetBIOS. Это делается путем редактирования ключа реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\OptionalNames

и добавление дополнительных имен.

Вы, вероятно, получаете эту ошибку, потому что машина Windows не понимает себя как то, что вы к ней подключаетесь. (Использование неверной информации для аутентификации приводит к изменению ошибки, поскольку эта проблема возникает не раньше, чем в процессе подключения.)

Попробуйте подключиться к нему как его IP-номер, а не windows-machine. Если это сработает, это подтверждает, что имя - это то, что происходит, и вы можете решить это, либо заставив PDC понять, что он windows-machine или просто используя IP-адрес.

Вы должны использовать флаг «-m», чтобы указать максимальную версию протокола, которую вы будете использовать. По умолчанию это "NT1", здесь из справочной страницы smbclient:

-m|--max-protocol protocol
    This allows the user to select the highest SMB protocol level that
    smbclient will use to connect to the server. By default this is set
    to NT1, which is the highest available SMB1 protocol. To connect
    using SMB2 or SMB3 protocol, use the strings SMB2 or SMB3
    respectively. Note that to connect to a Windows 2012 server with
    encrypted transport selecting a max-protocol of SMB3 is required.

Я подозреваю, что версия "NT1" полагается на вещи netbios, в отличие от SMB2 и последующих версий.

Так что попробуйте еще раз с «-m SMB3» или «-m SMB2», вы также значительно выиграете в производительности.

вы можете использовать параметр -I и указать IP-адрес.

smbclient -U username -W workgroup -L //windows-machine  -I <machine-ipaddr>

Вы не можете использовать ни имя машины в / etc / hosts, ни, возможно, имя с DNS-сервера.

Вы должны использовать либо IP-адрес аппарата, либо NetBIOS-имя аппарата, указанное в Windows.

Чтобы найти имя NetBIOS в Windows XP:

  1. Щелкните правой кнопкой мыши «Мой компьютер».
  2. Щелкните "Свойства"
  3. Перейдите на вкладку «Имя компьютера».
  4. Прочтите поле «Полное имя компьютера» до первой точки. '.'