Wer schon immer eine Möglichkeit gesucht hat, seine Netzlaufwerke ohne die Windowsboardmittel zu verbinden, ist hier genau richtig. Vor nicht all zu langer Zeit habe ich mich gewundert, wieso mein Microsoft Windows 7 x64 beim Anmelden teilweise bis zu 15 Sekunden gebraucht hat, ehe ich den Desktop sah. Meine Hardware (vor allem meine SSD) spricht eigentlich dafür, dass das nicht länger als 2 Sekunden dauern sollte. Auch wenn ich meinen PC nur einmal am Tag starte, hat es mich dennoch gestört.
Die Uhrsache lag bei meinen persistenten Netzlaufwerken. Bei jeder Anmeldung checkt Windows, ob die Netzlaufwerke verfügbar sind. Wenn mein QNAP NAS System nicht erreichbar ist, entstehen die längeren anmelde Phasen. Je nach Anzahl der zu suchenden Netzlaufwerke, kann es entsprechend länger dauern bis Windows mit der Prüfung fertig ist. In meinem Fall waren es drei Netzlaufwerke, die nicht erreichbar waren. Diese Latenzzeiten sind im Allgemeinen bei Windows Betriebssystemen eh zu hoch eingestellt.
Um dieses Problem zu umgehen, habe ich versucht ein Batch Script zu schreiben. Das wollte ich dann per Aufgabenplanung alle 5 Minuten laufen lassen.
@echo off net use x: \\"server"\"laufwerk" /user:"user" password:"Kennwort" net use y: \\"server"\"laufwerk" /user:"user" password:"Kennwort" trennen: @echo off net use x: /d net use y: /d
Das hat soweit funktioniert. Aber das CMD Fenster, das sich immer wieder bei jedem Aufruf öffnete, störte mich. Also denn, suchte ich bei google nach einer Alternative. Kurze Zeit später fand ich ein VB-Script das die Sache mit dem CMD Fenster behob.
Jetzt wollte ich noch einen Ping raus senden der prüfen sollte, ob das NAS System auch wirklich online ist. Nun hatte ich aber genau dasselbe Problem wie zuvor. Es öffnete sich wieder ein CMD-Fenster 😕
Kein Problem, google weiß doch alles und nun ging die Suche von vorn los … Nach mehreren Minuten suchen, viel mir ein hinweiß auf: „Nur *.exe Dateien können vollständig per Aufgabenplanung im Hintergrund laufen“! Da ich keine Ahnung von Visualbasic , C++ oder irgendeiner anderen Sprache habe, viel mir kurzerhand „AutoIt [DOWNLOAD]“ ein. Damit kann man seine Scriptdateien in ein *.exe Container packen.
Das währe der Code dazu:
Local $ping = Ping("IP oder HOSTNAME", 150) If $ping Then if DriveStatus("Y:\") = "INVALID" Then DriveMapAdd("Y:", "\\[server]\[laufwerk]" , [0=non persistent] , "[user]" , "[Kennwort]" ) EndIf Else if DriveStatus("Y:\") = "UNKNOWN" Then DriveMapDel("Y:") EndIf EndIf
Das Script muss nur noch individuell angepasst werden und als Aufgabe in Windows integriert werden.
Tags: AutoIt V3 Batch Script DriveMapAdd DriveStatus Netzlaufwerk Ping Task Scheduler Windows 7 Windows Aufgabenplanung