Batchdatei nach Anmeldung funktioniert nicht immer

Element22

Ensign
Registriert
Jan. 2009
Beiträge
224
Hallo,

bei uns gibt es einen Übersichtsplan in PHP-Form. Wenn ich ein Client (XP-Pro.) in der Domäne auf dem Server (Server2003) anmeldet wird bei ihm über Richtline eine Batchdatei ausgeführt. Diese bewirkt, dass eine TxT erstellt wird mit den Daten:
Dateiname=PC-Name
in der Datei steht:
Loginname; Logindatum (Format TT:MM:JJJJ); Loginuhrzeit
Diese wird von der PHP Seite eingeladen und den PCs auf der Seite der Loginname & Loginuhrzeit zugeordnet. Bei Abmeldung wird diese Datei wieder gelöscht.

Das Problem ist, das das Script nicht immer klappt. Aus irgend einem Grund wird es manchmal wohl nicht ausgeführt oder abgebrochen. Die Frage ist was passiert und wieso. Evtl. liegt auch schon ein Fehler im Script vor, wobei es ja sonst gut funktioniert.

Script:
Code:
anmeldung 
---------------------------------


@net use X: \\LW-Name\anmeldung$
@echo %Username%; %date%; %time:~0,5% > X:\PCLISTE\%computername%.txt
@net use X: /delete



-------------------------------


Abmeldung 
------------------------------------

@net use X: \\LW-Name\anmeldung$
@del X:\PCLISTE\%computername%.txt
@net use X: /delete


Hat jemand eine Idee wieso es manchmal nicht klappt?
 
Warum so umständlich ein Netz-LW verbinden? Kannst doch direkt auf den Netzwerkpfad schreiben. Denke das könnte u.U. den Fehler verursachen. Wenn nämlich das LW noch nicht bereit ist, kann er auch nich drauf schreiben.
 
Versuchs mal damit:

Code:
@net use X: \\LW-Name\anmeldung$
[B]@ping 127.0.0.1 -n 5 -w 1000 > nul[/B]
@echo %Username%; %date%; %time:~0,5% > X:\PCLISTE\%computername%.txt
@net use X: /delete


//edit
Eine bessere Lösung:
Code:
@[B]start /wait[/B] net use X: \\LW-Name\anmeldung$
@echo %Username%; %date%; %time:~0,5% > X:\PCLISTE\%computername%.txt
@net use X: /delete
 
Zuletzt bearbeitet:
Warum so umständlich ein Netz-LW verbinden? Kannst doch direkt auf den Netzwerkpfad schreiben. Denke das könnte u.U. den Fehler verursachen. Wenn nämlich das LW noch nicht bereit ist, kann er auch nich drauf schreiben.

So war es vorher und es traten die selben Probleme auf.

redilS schrieb:
Versuchs mal damit:

Code:
@net use X: \\LW-Name\anmeldung$
[B]@ping 127.0.0.1 -n 5 -w 1000 > nul[/B]
@echo %Username%; %date%; %time:~0,5% > X:\PCLISTE\%computername%.txt
@net use X: /delete

Hm, du pingst den Server oder der PC sich selber an? Und wenn der bereit ist wird gespeicher oder wie soll ich das verstehen? Was genau soll das bringen? Wartet der nicht automatisch x sec. wenn er das LW nicht erreicht und speichert dann erst? Bin etwas verwirrt :)
 
Vergiss die "ping" Lösung, das ist ebenfalls nicht verlässlich. Probiers mit "start /wait", dann wartet er auch bis net use durch ist.
 
Ok, das werden wir mal testen. Hoffentlich hilft es. Wenn euch weiter etwas einfällt, immer raus damit :)
 
Vergiss die "ping" Lösung, das ist ebenfalls nicht verlässlich. Probiers mit "start /wait", dann wartet er auch bis net use durch ist.

Naja wenn net use aber schon fertig meldet und das LW trotzdem noch nicht ansprechbar ist, hat er das gleiche Problem. So läuft es nämlich ohne "start" eigentlich ab. Eben eine Stapelverarbeitung. Die Ping-Lösung wäre da die bessere Alternative.

Aber davon abgesehen, wird es nicht am "net use" liegen. Sonst würden die Probleme beim direkten Schreiben nicht auch auftreten. Weißt du denn bei welchen Rechnern es hin und wieder nicht funktioniert bzw. merkst du wann es passiert.

Ich kann mir als Fehler eigentlich nur vorstellen, dass der Netzwerkname noch nicht aufgelöst werden kann oder ähnliches. Einen Versuch mit dem Ping-Trick ist es auf jeden Fall wert. Die Idee dahinter ist einfach, dass der PC x Sekunden wartet und da nicht jeder das kleine Programm "wait" hat, kann man sich hier mit einem langen Ping behelfen, wobei -t xxxx die Zeit in Millisekunden angibt. Den Localhost (127.0.0.1) nimmt man, damit das Ding nicht abbricht, weil er den Rechner nicht findet.
 
Zum Pingtrick, -w funzt nicht wenn man das so schreibt, oder? Zu mindest ist es immer genau so schnell ob mit -w oder ob -w 5000 oder -w 20000
 
Ich war geistig umnachtet... -t ist natürlich die Option für einen Dauerping und die hat damit gar nichts zu tun.

-n x für eine Anzahl von Pings und es liegt immer knapp eine Sekunde zwischen den Versuchen, wenn der Rechner gleich antwortet. Von daher resultiert aus -n 5 eine Wartezeit von ca. 5 Sekunden.

-w gibt nur an wie lange auf eine Antwort gewartet wird. Logischerweise antwortet der Localhost aber immer sofort.
 
Ja, -n kenne ich, den nutze ich auch immer ;). Ok, werden das mal beides testen.
 
Danke Knight, -n ist natürlich richtig :) Das kommt davon, wenn man nur schnell per Copy/Paste arbeitet ohne zu kontrollieren :(
 
Zurück
Oben