Net Use und Systemfehler 1219

MickH74

Lieutenant
Registriert
Apr. 2009
Beiträge
589
Hallo,

ich benutze Win 8.1 x64 und habe eine Batchdatei, um beim Start Netzlaufwerke zu verbinden.

Die Batchdatei sieht so aus:

Code:
@echo off
mode con cols=175 lines=50
echo Trenne Netzlaufwerke
net use * /delete /yes
timeout /t 3
echo Netzlaufwerke getrennt
echo Verbinde Netzlaufwerke
set count=0

:START
if %count%==10 goto ERROR
set /a count +=1
ping 192.168.100.206 | find "TTL" > NUL
IF ERRORLEVEL == 1 (goto START) else (goto MAP)

:MAP
net use z: \\192.168.100.206\NAS /PERSISTENT:NO /user:Username Password
net use Y: \\192.168.100.206\Downloads /PERSISTENT:NO /user:Username Password
net use x: \\192.168.100.206\Micha /PERSISTENT:NO /user:Username Password
net use w: \\192.168.100.206\video /PERSISTENT:NO /user:Username Password
net use v: \\192.168.100.206\photo /PERSISTENT:NO /user:Username Password
net use u: \\192.168.100.206\music /PERSISTENT:NO /user:Username Password
net use t: \\192.168.100.206\Cloud-Speicher /PERSISTENT:NO /user:Username Password
net use s: \\192.168.100.206\PLUS /PERSISTENT:NO /user:Username Password
net use r: \\192.168.100.206\Lightroom /PERSISTENT:NO /user:Username Password
echo Netzlaufwerke verbunden
timeout /t 3
pause
goto EOF

:ERROR
echo Fehler beim Verbindungsaufbau
pause

:EOF

Normalerweise läuft das Script auch ohne Probleme, aber etwa alle 10 Starts wird nur das erste Laufwerk verbunden und die übrigen mit einem Systemfehler 1219 kommentiert. Das sieht dann so aus:

net use.JPG

Das kleine Fenster habe ich anschließend geöffnet und ein
Code:
Net use
ausgeführt.

Jetzt habe ich gelesen, dass der Systemfehler 1219 angezeigt wird, wenn bereits ein anderer Benutzer zu dem Laufwerk verbunden ist und es wird in mehreren Foren empfohlen, zunächst mit
Code:
Net Use * /delete /Yes
jede Verbindung zu trennen. Bei mir hilft das aber nicht. Ich wüsste auch nicht, welcher andere Benutzer da verbunden sein soll. An diesem PC meldet sich sonst niemand an.

Hat jemand eine Idee, wie man das Problem beheben kann?

Danke und Gruß,
Mick
 
Möglich, daß eine der beiden Seiten mit dem beinahe gleichzeitigen Verbinden von neun Netzlaufwerken überfordert ist. Probier mal, von Zeile 17 bis 25 jeweils eine einsekündige Pause mit

Code:
SLEEP 1

einzufügen.
 
Du könntest im Falle das die Fehlermeldung kommt die Netzwerke auch mit dem Servername statt der IP verbinden, das sollte zumindestens die Fehlermeldung "übergehen".

Wäre nur die Frage was passiert, wenn man in das Script gleich 2x die Verbindung reinschreibt, einmal mit IP, einmal mit Name oder ob man da jeweils noch ne Abfrage reinmacht. :)

z.B.
net use r: \\192.168.100.206\Lightroom /PERSISTENT:NO /user:Username Password
+
net use r: \\"Rechnername"\Lightroom /PERSISTENT:NO /user:Username Password


http://www.nwlab.net/art/system-error-1219/systemfehler-1219.html
 
Hm.. Kann sein, dass Windows die Netzlaufwerke beim Shutdown nicht korrekt abmeldet und sie so auf dem Server noch als aktiv angesehen werden -> doppelter Login.

Wenn du in den Group Policies beim Shutdown ein Skript einbaust, dass rein präventiv alle Netzlaufwerke explizit abmeldet (im Gegensatz zum impliziten net use *), würde das evtl. helfen. Zu finden ist die Option unter Ausführen->gpedit.msc->Windows Settings->Shutdown. Mag sein, dass das bei Windows 8 woanders liegt und/oder anders funktioniert, das weiß ich leider nicht. Einen Versuch wäre es wert.

Natürlich kannst du die Trennung auch direkt ins Anmelde-Skript packen, also anstelle deines net use *. Ich mache das grundsätzlich so, dass ich vor einem net use x: immer den Pfad bzw. das Laufwerk explizit trenne (-> net use x: /delete und net use \\bla\blubb /delete). U.a. auch, weil ich identische Shares auf verschiedenen PCs abwechselnd verbinden muss. Packt man das ganze net use Gedöns in eine Funktion, muss man das auch nicht ein Dutzend Mal tippen/kopieren, sondern hat nur eine "MAP" Funktion, die trennt und anschließend verbindet - je nach Übergabeparamter.

Beispiel:


Code:
SET user=bla
SET password=blubb
SET serverip=192.168.100.206
REM ServerIP und Anmeldeinformationen zentral als Variablen. 

CALL :MAPDRIVE x \\%serverip%\share1
REM Der Doppelpunkt vor der Sprungmarke/Funktion MUSS sein!
REM x bzw. \\... sind Übergabeparameter an die Funktion (%1 und %2)

CALL :MAPDRIVE y \\%serverip%\share2

CALL :MAPDRIVE z \\%serverip%\share3

GOTO:EOF
REM Ende im Gelände


:MAPDRIVE drive, path
REM drive und path sind nur Kommentare für %1 und %2, relevant ist nur ":FUNKTIONSNAME"
net use %1: /delete 2>&1 >nul
net use %2 /delete 2>&1 >nul
net use %1: %2 /persistent:no /user:%user% %password%
REM Username und Passwort auf allen shares identisch. Sonst als %3 und %4 ergänzen
GOTO:EOF 
REM Obiges GOTO:EOF springt nicht ans FileEnde, sondern nur aus MAPDRIVE raus ("return")
 
Zuletzt bearbeitet:
Zurück
Oben