Netzlaufwerke unter Windows 8 / 10

Wer von Windows aus regelmäßig Zugriff auf Netzlaufwerke von nicht permanent verfügbaren oder restriktiv konfigurierten Linux-Servern benötigt, muss Geduld haben. Oder eine kleine Batch-Datei.

Der Dateimanager von Windows ist ein Universalgenie. Ich kann damit nicht nur die Laufwerke des PCs ansehen. Durch Eingabe eines Verbindungsprotokolls kann ich damit via ftp: direkt auf Webserver zugreifen. Oder via \\UNC-Pfad direkt auf Netzlaufwerke. Der Erfolg von letzterm hängt jedoch an verschiedenen Faktoren, die ich im Einzelnen noch nicht ergründet habe (bzw. keine Lust drauf hatte).

Soweit man Zugriffsrechte hat, funktioniert das Verbinden von Netzlaufwerken ziemlich zuverlässig über den Explorer.

  1. Auf Dieser PC gehen
  2. Explorer-Menü (Pfeilchen oben rechts neben dem Fragezeichen) öffnen, wenn nicht sowieso auf
  3. Netzlaufwerk verbinden anklicken und die gewünschten Angaben machen

Wenn man das öfters benötigt, klickt man das Verbindung bei Anmeldung wiederherstellen an. Klar. Was jedoch dazu führen kann, dass ab dann Explorer-Aufrufe sehr zäh werden, wenn das Netzlaufwerk nicht erreichbar ist. Denn der Explorer will natürlich alles anzeigen, was man dafür ausgewählt hat. Weil Netzwerk­verbin­dungen schon mal wacklig sein können, probiert er das eine ganze Weile, bevor er aufgibt. So lange er das probiert, geht nichts im Explorer. Jedes Mal.

Also lässt man das mit dem wieder anmelden. Allerdings ist es natürlich nervig, wenn jedes Mal mit der Maus Verbindungen wieder hergestellt oder getrennt werden müssen. Dafür kann man dann auf die Konsole zugreifen, die unter Windows gern vergessen wird. Da lässt sich mit dem Befehl net use das Erforderliche fix eintippen, statt Mausgeschubse.

Weil das auf Dauer aber ebenfalls nervt, kann man sich mit einer kleinen Batch-Datei helfen, die prüft, ob ein Laufwerk verbunden ist. Wenn ja, wird es getrennt, wenn nein, wird es verbunden. Das lässt sich mit der Abfrage des erforderlichen Benutzernamens und Passwort koppeln.

Benutzernamen und Passworte gehören nicht als Klartext in Batch-Dateien!

Das kann dann z.B. so aussehen:


@echo off
if exist w:\nul goto disconnect

net use /P:no
set /P user=Benutzername: 

net use w: [netzwerkpfad] * /user:%user%
net use z: [netzwerkpfad]

echo. Netzlaufwerke verbunden

goto done

:disconnect

net use w: /delete
net use z: /delete

echo. Netzlaufwerke getrennt

:done

Damit eine Batch-Datei das an- und abmelden erledigt, ist am Anfang mit if exist eine Abfrage eingebaut. Sie schaut einfach nach, ob das Laufwerk w: existiert. Es sollte natürlich eins abgefragt werden, dass der Batch einhängt (s.u.). Wenn ja, wird zur Marke :disconnect gesprungen, die angemeldeten Laufwerke werden abgemeldet. Andernfalls wird angemeldet und das abmelden mit goto done übersprungen.

Damit die Netzlaufwerke nicht dauerhaft („persistent“) verbunden werden, ist net use /P:no eingefügt. Alle nachfolgenden Anmeldungen gelten damit höchstens bis zum nächsten Login. Der set /P-Befehl fragt die Variable user ab und zeigt dafür den Text nach dem Gleichheitszeichen an. Der wird dann später mit %user% übergeben. Das Passwort fragt die erste net use Anweisung ab, weil dort ein * statt des Passworts eingefügt ist. Für weitere Pfade wird Benutzer und Passwort weiter verwendet. Daher ist eine wiederholte Angabe nicht mehr nötig. Vorausgesetzt, Nutzer und Passwort bleiben gleich.

Bei der Passworteingabe rührt sich in der Kommandozeile nichts. Die üblichen Sternchen in Eingabefeldern funktionieren da nicht, deshalb bleibt der Cursor einfach stehen. Weil das unter Windows eher unüblich ist, kann das beim ersten Mal irritieren.

Diese Datei auf dem Desktop verlinkt und schon ist das ein- und aushän