Donnerstag, 28. Dezember 2017

Netzlaufwerke verbinden Windows 10 Version 1709

Mit der Version 1709 von Windows 10 hat man mal wieder ein verändertes "Anmelde" Verhalten Microsoft hat da wieder kräftig "optimiert" - was (wie schon so oft im Leben von Windows) mal wieder dazu führt, dass Netzlaufwerke nach der Anmeldung mit einem roten Kreuz versehen sind und Applikationen die diese Netzlaufwerke brauchen nicht funktionieren.
Klar, ein Doppelklick auf das rote Kreuz im Explorer behebt das Problem.
Das Verhalten ist davon abhängig wie schnell man sich nach dem Systemstart anmeldet, wartet man erst eine Weile, hat man unter Umständen rote Kreuze an den Laufwerken:

Automatische Abhilfe würde eine kleine Batchdatei schaffen, die man einfach in den Autostartordner des Benutzers legt, der sich anmeldet.
Apropos Autostart Ordner - wo ist der eigentlich? - Der wird seit einigen Windows Versionen auch ziemlich versteckt. Man erreicht ihn eigentlich nur noch über:
Windows + "R"
shell:startup eintippen und enter

Dort erzeugt man eine neue Textdatei mit beliebigen Namen und der Endung bat oder cmd mit folgendem Inhalt:

@echo off
set Server=<Servername>

REM es gibt Problem mit dem find Befehl wenn man sich nicht im Systempfad befindet
cd %SystemRoot%\system32

REM zunächst prüfen ob der Server online ist, wenn nicht Warteschleife
:Loop
ping -n 1 -w 5000 %Server% | find /i "Zeit" && (goto Online)
echo Server %Server% ist nicht erreichbar! 
timemout 10
goto Loop

:Online
REM zunächst Laufwerk löschen und dann wieder verbinden
if exist V: net use /d /yes V: > NUL
net use V: \\%Server%\Videos /yes > NUL

Dieses Script muss man natürlich für Servernamen,  Laufwerk und Share anpassen. Es sind mehrere Laufwerke möglich, einfach die letzen beiden Zeilen kopieren, einfügen und modifizieren.

Eine von vielen alternativen Möglichkeiten diese Datei bei der Anmeldung auszuführen wäre die Aufgabenplanung.

Die Grundlage für mein Script stammt aus dieser Quelle. Es gibt aber ganz wesentliche Änderungen:

  1. find /i "TTL" im Original funktioniert nur für IPV4, bei IPV6 ist die Antwort ohne TTL. Das "Zeit" Feld existiert aber bei beiden IP Versionen. Hier kann sich jederzeit wieder etwas ändern. Insbesondere Sprachabhängigkeiten!
  2. net use im Original forciert nicht die vorhandene Verbindung zu überschreiben. Mit dem Zusatz /yes wird auch eine leicht anders lautende Verbindung für das gleiche Laufwerk überschrieben.

2 Kommentare:

  1. Nettes Script! ;-)
    An Stelle "sleep 10" sollte man besser mit "timeout 10" arbeiten da "sleep" von Haus aus nicht mehr bei Win10 dabei ist.

    Grüße, Jens

    AntwortenLöschen
    Antworten
    1. Hallo Jens, danke für die Information. Ist mir irgendwie nicht aufgefallen, Du hast völlig Recht. Sleep ist offenbar bei mir "überall" aber normal nicht vorhanden. Ich ändere das ab.
      Gruß Otto

      Löschen