Wenn Sie eine Verbindung mit Samba zu einer Windows-Freigabe herstellen, wird "NT_STATUS_DUPLICATE_NAME" zurückgegeben.

10

Ich habe auf meinem Windows-Computer ein freigegebenes Verzeichnis eingerichtet und Benutzernamen @ Arbeitsgruppe Vollzugriffsberechtigungen erteilt.

Wenn ich versuche, mit smbclient eine Verbindung zum Windows-Computer unter Linux herzustellen, wird der Fehler angezeigt NT_STATUS_DUPLICATE_NAME. Hier ist das Transkript:

$ 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

Wenn ich absichtlich den falschen Benutzernamen, das falsche Passwort oder die falsche Arbeitsgruppe eingebe, wird eine andere Fehlermeldung angezeigt : NT_STATUS_LOGON_FAILURE. Es scheint also, als würde ich die anderen Informationen richtig verstehen.

Ich habe einen Eintrag in / etc / hosts eingefügt, der windows-machineauf seine IP-Adresse verweist . Der NetBIOS-Name des Windows-Computers ist etwas anderes.

Weiß jemand, was dieser Fehler bedeutet?

Neil
quelle

Antworten:

9

Der NetBIOS-Name des Windows-Computers ist etwas anderes

Das ist dein Problem. Es kann leicht durch einen Registrierungs-Hack auf dem Windows-Computer behoben werden. Weitere Informationen finden Sie unter http://support.microsoft.com/kb/281308 .

Aktualisieren

Der oben verlinkte ursprüngliche Support-Artikel ist verschwunden (danke an Microsoft). Der neue Artikel lautet: Der Zugriff auf die Freigabe von SMB-Dateiservern ist über den DNS-CNAME-Alias ​​nicht erfolgreich .

Joril weist auch darauf hin, dass ein Server mehrere NetBIOS-Namen haben kann. Dies erfolgt durch Bearbeiten des Registrierungsschlüssels:

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

und Hinzufügen der zusätzlichen Namen.

John Rennie
quelle
1
Ich frage mich, warum dies nicht nur in einem Patch behoben ist.
Neil
Es ist kein Fehler, es ist absichtlich so gestaltet. Möglicherweise aus Sicherheitsgründen, obwohl ich nicht sicher bin, warum genau. Ich nehme an, es verhindert, dass Sie versehentlich eine Verbindung zum falschen Server herstellen, wenn Sie unerwünschte Einträge in der Hosts-Datei oder im Duff-DNS haben. Persönlich habe ich den Registrierungs-Hack auf alle meine Server gesetzt.
John Rennie
Link sieht tot aus (404). Auf HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableStrictNameChecking
jeden Fall
... oder noch besser, OptionalNames
Joril
6

Wahrscheinlich wird dieser Fehler angezeigt, weil der Windows-Computer sich selbst nicht als das identifiziert, als das Sie eine Verbindung herstellen. (Die Verwendung falscher Authentifizierungsinformationen ändert den Fehler, da dieses Problem erst später im Verbindungsprozess auftritt.)

Versuchen Sie, eine Verbindung als IP-Nummer herzustellen, nicht windows-machine. Wenn dies funktioniert, wird bestätigt, dass der Name das ist, was gerade passiert, und Sie können ihn entweder beheben, indem Sie den PDC als sich selbst verstehen lassen windows-machineoder indem Sie einfach die IP-Nummer verwenden.

Chaos
quelle
3

Sie sollten das "-m" -Flag verwenden, um die maximale Protokollversion anzugeben, die Sie verwenden werden. Standardmäßig ist es "NT1", hier von der Manpage des 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.

Ich vermute, dass sich die "NT1" -Version im Gegensatz zu SMB2 und den nächsten auf NetBIOS-Dinge stützt.

Versuchen Sie es also noch einmal mit "-m SMB3" oder "-m SMB2". Sie profitieren auch stark von der Leistung.

ThoSil
quelle
2

Sie können die Option -I verwenden und die IP-Adresse angeben.

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

Sie können weder den Namen des Computers in / etc / hosts noch den Namen vom DNS-Server verwenden.

Sie müssen entweder die IP-Adresse des Computers oder den NetBIOS-Namen des in Windows angegebenen Computers verwenden.

So finden Sie den NetBIOS-Namen in Windows XP:

  1. Klicken Sie mit der rechten Maustaste auf "Arbeitsplatz".
  2. Klicken Sie auf "Eigenschaften"
  3. Klicken Sie auf die Registerkarte "Computername"
  4. Lesen Sie das Feld "Vollständiger Computername" bis zur ersten Periode '.'
Neil
quelle