Netzlaufwerk Mappen per Batch und Aufgabenplaner

Paynekiller

Schraubenverwechsler(in)
Hallo Freunde,

ich wünsche euch frohe Ostern.

Ein Problem was mich in den letzten Stunden beschäftigt ist die Ausführung eines Scriptes (.bat oder .cmd) via Aufgabenplanung.
Randdaten:

Betriebssystem: Windows 10 (Version 1803)


Das Script funktioniert einwandfrei und beeinhaltet folgendes:

Code:
@echo off
cls
echo Verbinde Netzlaufwerk
echo.
net use X: \\192.168.1.80\NAS-Toshiba /user:benni [Passwort]
echo.
echo Verbindung erfolgreich
Pause #nur eingefügt um Fehlermeldung lesen zu können
exit

Die Datei ist als .cmd gespeichert. Die Ausführung klappt auch problemlos wenn ich diese manuell starte. Wenn ich jedoch das Script über die Aufgabenplanung ausführe, passiert vieles, nur nicht die korrekte Ausführung des scriptes.

Folgende Lösungsansätze wurden bereits probiert:
1. Aufgabe unter dem Nutzer "System" ausführen
2. Aufgabe höchstmögliche Prioritäten zuweisen
3. Benutzer "Benni" in die Liste der Ausführbaren Nutzer für Stapelverarbeitungsprozesse einsetzen
4. .cmd Interpreter vorher via Pfadangabe ausführen und dann als Argument das Script übergeben

Als Trigger habe ich "Beim Systemstart ausführen" gewählt, jedoch passiert nach einem Neustart des Systems gar nichts und er führt die Aufgabe nicht aus. Wenn ich die Aufgabe über den Aufgabenplaner per Hand starte, scheint er zwar das Script ausführen zu wollen, jedoch meldet mir dann die Kommandozeile folgende Fehlermeldung:

Fehler.png

Auch hier wird das Script ohne Fehlermeldung ausgeführt, wenn ich es manuell per Doppelklick auf die Datei starte.
Einen Lösungsansatz der die Benutzung von sogenannten "UNC-Pfaden" im script beschreibt habe ich nicht nachvollziehen können, da er ja das Netzlaufwerk nur mappen soll und nichts in irgentein Verzeichnis schreiben soll, das bei Systemstart noch nicht existent ist.

Hat jemand Erfahrungen mit der Aufgabenplanung unter Windows 10 mit Batch-Dateien und erkennt das Problem oder kann mir eine Hilfestellung geben?

Entspannten Ostersonntag euch allen.
 
Das Problem ist, dass man mit "net use" keine globalen, für alle Benutzer gültigen Netzlaufwerke anlegen kann. Das Script legt, wenn es über den Scheduler gestartet wird, für die "Sitzung" des Schedulers ein Netzwerk-Share an. Selbst wenn das Script unter dem User "Benni" ausgeführt wird, dürfte der Share nicht in der Session des Users sichtbar sein.

Warum kannst Du das ganze nicht einfach in den Autostart-Ordner für den User kopieren, also unter
"AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

Dazu u.U. noch ein paar Zeilen am Anfang ergänzen
if exist X:\ (
net use X: /delete
)

Das ganze hat übrigens den Nachteil, dass Windows beim Start/Login versucht, auf das Laufwerk zuzugreifen. Damit wurde zumindest damals mein QNap NAS jedesmal nutzlos aufgeweckt, obwohl ich garnicht darauf zugreifen wollte. Das mag aber auch ein Bug von QNap gewesen sein.

Gesamthaft verstehe ich den Sinn hinter dem Script (auf dem eigenen Rechner) beim Systemstart sowieso nicht. Einmal manuell das Laufwerk verbinden und "Verbindung bei Anmeldung wieder herstellen" aktivieren (oder bei net use "/persistent:yes" angeben), und schon ist das Laufwerk auch nach dem Neustart für den User wieder verfügbar.
 
Muss das Laufwerk denn automatisch beim Start gemountet werden?
Ich geb meine Netzwerklaufwerke einfach in die Schnellzugriffsleiste vom Explorer.

explorer.PNG
 
Warum kannst Du das ganze nicht einfach in den Autostart-Ordner für den User kopieren, also unter
"AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

Vielen Dank! Manchmal denkt man einfach zu kompliziert und kommt nicht auf die einfachsten Sachen. Ich wusste nicht, das über den Startup Ordner auch Scripte ausgeführt werden können. Das funktioniert Perfekt. :daumen:

Gesamthaft verstehe ich den Sinn hinter dem Script (auf dem eigenen Rechner) beim Systemstart sowieso nicht. Einmal manuell das Laufwerk verbinden und "Verbindung bei Anmeldung wieder herstellen" aktivieren (oder bei net use "/persistent:yes" angeben), und schon ist das Laufwerk auch nach dem Neustart für den User wieder verfügbar.

Ja, normalerweise wäre das nicht nötig. Jedoch verbindet Windows 10 das Netzlaufwerk beim Systemstart eben nicht sofort und zeigt dann diese Fehlermeldung an:

Es-konnten-nicht-alle-Netzlaufwerke-wiederhergestellt-werden.png

Ich greife eben in so ziemlich jeder Sitzung auf das Netzlaufwerk zu, da sich dort mein "eigentlicher" Speicher befindet und ich per Verknüpfungen vom Desktop aus auf Dateien, die eben dort abgelegt sind, zugreife. Von daher darf es sich auch gern erstmal "sinnlos" verbinden.

Muss das Laufwerk denn automatisch beim Start gemountet werden?
Ich geb meine Netzwerklaufwerke einfach in die Schnellzugriffsleiste vom Explorer.

Ja das hab ich auch gemacht. Allerdings greife ich eben, wie erwähnt, über Verknüpfungen auf dem Desktop auf manche Dateien zu (z. B. Passwortdatenbank).

Vielen Dank für eure Antworten.
 
Deine Verknüpfungen auf dem Desktop kann man doch direkt ins Netzwerk bauen.
Dafür brauchst du keinen Laufwerksbuchstaben.
 
Nein, das nicht; es bedeutet aber, dass es mit System als ausführende Einheit im Windows Scheduler nicht funktionieren wird.
 
Zurück