-
-
Notifications
You must be signed in to change notification settings - Fork 0
Twisted
Frage: kann ich unter Windows einen Server immitieren? Also das ich mit \\SERVER1\Data und \\SERVER2\Backup gleichermaßen auf localhost (127.0.0.1) zugreife - nur mit unterschiedlichen Verzeichnissen?
Antwort: Ja, das geht unter Windows ziemlich gut. Du kannst mehrere „virtuelle Servernamen“ auf deinen lokalen Rechner zeigen lassen und für jeden Namen unterschiedliche Freigaben verwenden.
Die einfachste Lösung ist:
- HOSTS-Datei erweitern
- Freigaben anlegen
- Mit unterschiedlichen UNC-Pfaden arbeiten
1. HOSTS-Datei bearbeiten
Datei: C:\Windows\System32\drivers\etc\hosts als Administrator öffnen und ergänzen:
127.0.0.1 SERVER1 127.0.0.1 SERVER2
Optional IPv6:
::1 SERVER1 ::1 SERVER2
Danach zeigen beide Namen auf deinen lokalen Rechner.
2. Unterschiedliche Freigaben anlegen
New-SmbShare ` -Name "Data" ` -Path "D:\Server1\Data" New-SmbShare ` -Name "Backup" ` -Path "D:\Server2\Backup"
3. Zugriff Jetzt funktionieren:
\\SERVER1\Data \\SERVER2\Backup
Inhalt von C:\windows\system32\drivers\etc\hosts:
# ------------------------------------------- # the Standard devices on local machiene # ------------------------------------------- 127.0.0.1 localhost ::1 localhost # ------------------------------------------- # ipv6 Connection numbers # ------------------------------------------- fd00::10 servera server1 fd00::20 serverb server2 fd00::30 serverc server3 fd00::12 client1.servera fd00::14 client2.servera fd00::16 client3.servera fd00::18 client4.servera fd00::22 client1.serverb fd00::24 client2.serverb fd00::26 client3.serverb fd00::28 client4.serverb fd00::32 client1.serverc fd00::34 client2.serverc fd00::36 client3.serverc fd00::38 client4.serverc # ------------------------------------------- # ipv4 Connection numbers # ------------------------------------------- 192.168.10.10 servera server1 192.168.10.20 serverb server2 192.168.10.30 serverc server3 192.168.10.12 client1.servera 192.168.10.14 client2.servera 192.168.10.16 client3.servera 192.168.10.18 client4.servera 192.168.10.22 client1.serverb 192.168.10.24 client2.serverb 192.168.10.26 client3.serverb 192.168.10.28 client4.serverb 192.168.10.32 client1.serverc 192.168.10.34 client2.serverc 192.168.10.36 client3.serverc 192.168.10.38 client4.serverc
ping server1 -> OK dir \\server1\bob16 -> Pfad nicht gefunden Das bedeutet: Namensauflösung funktioniert SMB-Serveralias aber nicht Und das ist ein typisches Windows-Loopback-/Alias-Problem. Du hast bereits: 192.168.10.10 servera server1 in der HOSTS-Datei. Windows SMB akzeptiert aber lokale Aliasnamen nicht automatisch.
Der entscheidende Fix mit PowerShell als Administrator:
New-ItemProperty ` -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" ` -Name "DisableStrictNameChecking" ` -PropertyType DWord ` -Value 1 ` -Force Danach: New-ItemProperty ` -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" ` -Name "BackConnectionHostNames" ` -PropertyType MultiString ` -Value "server1","servera","server2","serverb","server3","serverc" ` -Force Restart-Service LanmanServer -Force
Danach testen dir \\server1\bob16 dir \\server2\bob16 dir \\server3\bob16
Warum das passiert: Windows schützt sich gegen sogenannte Loopback SMB Reflection Attacks
Wenn dein Rechner: DESKTOP-XYZ heißt, akzeptiert SMB normalerweise nur: \\DESKTOP-XYZ\ nicht aber: \\server1\ auch wenn server1 auf dieselbe IP zeigt.
Freigaben anzeigen
Get-SmbShare
Freigabe löschen
Remove-SmbShare -Name "Data"
Gemappte Laufwerke
net use Z: \\SERVER1\Data /persistent:yes
Benutzer anzeigen und anlegen, falls nicht vorhanden
Get-LocalUser New-LocalUser "bob32" -Password (Read-Host -AsSecureString)
Danach Rechte setzen
NTFS-Rechte: ------------ icacls D:\Freigaben\bob32 /grant "bob32:(OI)(CI)F" Freigaberechte: --------------- Grant-SmbShareAccess ` -Name "bob32" ` -AccountName "bob32" ` -AccessRight Full ` -Force Freigabe prüfen: ---------------- Get-SmbShare Get-SmbShareAccess -Name bob32
Test ohne Laufwerksbuchstaben
dir \\Server1\bob32 explorer \\Server1\bob32
Wenn du gar keine Anmeldung willst
Grant-SmbShareAccess ` -Name "bob32" ` -AccountName "Jeder" ` -AccessRight Full ` -Force NTFS zusätzlich: ---------------- icacls D:\Freigaben\bob32 /grant "Jeder:(OI)(CI)F" Dann brauchst du kein Passwort mehr.
Falls noch alte falsche Credentials gespeichert sind:
net use M: /delete cmdkey /delete:Server1
Dann nochmal verbinden.
Alte SMB-Verbindungen komplett löschen
net use * /delete /y cmdkey /list cmdkey /delete:Server1 cmdkey /delete:TERMSRV/Server1
Du hast aktuell keinen sauber aufgelösten Benutzernamen in der Freigabe, sondern nur die SID:
Get-SmbShareAccess -Name "bob32" Name ScopeName AccountName AccessControlType AccessRight ---- --------- ----------- ----------------- ----------- bob32 * *S-1-5-21-3950508431-2044188425-536832209-1021 Allow Full
Das passiert oft, wenn:
- der Benutzer nachträglich erstellt wurde
- der Benutzer umbenannt wurde
- die Freigabe vorher existierte
- Windows die SID nicht korrekt auflösen konnte
SMB akzeptiert dann häufig die Anmeldung nicht sauber.
Lösung: Freigaberechte komplett entfernen und neu setzen. ------- Revoke-SmbShareAccess ` -Name "bob32" ` -AccountName "*S-1-5-21-3950508431-2044188425-536832209-1021" ` -Force Remove-SmbShare -Name "bob32" -Force New-SmbShare ` -Name "bob32" ` -Path "S:\Server1\bob32" ` -FullAccess "bob32" Get-SmbShareAccess -Name "bob32"
Ping-Test
PS C:\\> ping server1 Ping wird ausgeführt für servera [192.168.10.10] mit 32 Bytes Daten: Antwort von 192.168.10.10: Bytes=32 Zeit<1ms TTL=128 Antwort von 192.168.10.10: Bytes=32 Zeit<1ms TTL=128 Antwort von 192.168.10.10: Bytes=32 Zeit<1ms TTL=128 Antwort von 192.168.10.10: Bytes=32 Zeit<1ms TTL=128 Ping-Statistik für 192.168.10.10: Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust), Ca. Zeitangaben in Millisek.: Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms
Copyright (c) 2024, 2025, 2026 by Jens Kallup - paule32