Dienst starten und Stoppen, Datei löschen auf remote system - wie?
Ich hab ein simples Problem: ich muss auf einem Entfernten System (Lan, "Rechner2") einen Dienst stoppen (Tomcat7), einen Ordner und eine Datei löschen und den Dienst wieder starten. Das ganze soll per Kommandozeilenbefehl erfolgen (Er wird ausgelöst durch einen Dienst (läuft unter "System") auf einem Rechner - "Rechner1"). Was ich bisher versuch habe:
"sc" Problem: es wartet nicht bis Dienst wirklich gestoppt ist, so dass es passieren kann, das der start-Befehl ignoriert wird und am Ende der Dienst nicht läuft
"PSExec" führt batch auf remote system aus, Problem: aus unerfindlichen Grund kommt manchmal:
"
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
The system cannot find the file specified.
Connecting to Rechner2...
Starting PsExec service on Rechner2...
Connecting with PsExec service on Rechner2...
Starting d:\batch\batch.cmd on Rechner2...
d:\batch\batch.cmd exited on a-awdbstaging with error code 1.
"
aus der Konsole kann ich dieses Problem nicht reproduzieren es tritt nur manchmal auf wenn es durch den Dienst auf Rechner1 ausgelöst wird. PSExec wird mit einem Benutzeraccount (-u,-p) aus der Domäne gestartet, dieser Benutzer ist Admin auf Rechner2.
Ich würde mich über eine Alternative oder Lösung einer der beiden Probleme freuen
Danke im Voraus
"sc" Problem: es wartet nicht bis Dienst wirklich gestoppt ist, so dass es passieren kann, das der start-Befehl ignoriert wird und am Ende der Dienst nicht läuft
"PSExec" führt batch auf remote system aus, Problem: aus unerfindlichen Grund kommt manchmal:
"
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
The system cannot find the file specified.
Connecting to Rechner2...
Starting PsExec service on Rechner2...
Connecting with PsExec service on Rechner2...
Starting d:\batch\batch.cmd on Rechner2...
d:\batch\batch.cmd exited on a-awdbstaging with error code 1.
"
aus der Konsole kann ich dieses Problem nicht reproduzieren es tritt nur manchmal auf wenn es durch den Dienst auf Rechner1 ausgelöst wird. PSExec wird mit einem Benutzeraccount (-u,-p) aus der Domäne gestartet, dieser Benutzer ist Admin auf Rechner2.
Ich würde mich über eine Alternative oder Lösung einer der beiden Probleme freuen
Danke im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 180250
Url: https://administrator.de/contentid/180250
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
17 Kommentare
Neuester Kommentar
Wie sieht denn dein Batch-file aus? Oder was kommt für ein Error zurück, wenn net start ausgeführt werden sollte?
Gruss
lousek
Edit:
Bei mir klappt das wunderbar:
C:\Users\xxx\Downloads\PsTools>PsExec.exe \\computer -c C:\temp\test
.bat
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
C:\WINDOWS\system32>net stop DNScache
The DNS Client service was stopped successfully.
C:\WINDOWS\system32>net start DNScache
The DNS Client service is starting.
The DNS Client service was started successfully.
test.bat exited on computer with error code 0.
Batch-file sieht so aus:
net stop DNScache
net start DNScache
Gruss
lousek
Edit:
Bei mir klappt das wunderbar:
C:\Users\xxx\Downloads\PsTools>PsExec.exe \\computer -c C:\temp\test
.bat
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
C:\WINDOWS\system32>net stop DNScache
The DNS Client service was stopped successfully.
C:\WINDOWS\system32>net start DNScache
The DNS Client service is starting.
The DNS Client service was started successfully.
test.bat exited on computer with error code 0.
Batch-file sieht so aus:
net stop DNScache
net start DNScache
Sali
Ja, ich hatte deine Frage gelesen! Aber erst jetzt ist mir klar, wie du es genau meinst, sorry ...
Um bei der Ausführung durch den Dienst die Ausgabe zu "speichern", versuch mal die Ausgabe in eine Datei umzuleiten, also z.B. "start test.bat > C:\logfile.txt 2>&1"
Was steht nachher in der Datei?
Gruss
lousek
Ja, ich hatte deine Frage gelesen! Aber erst jetzt ist mir klar, wie du es genau meinst, sorry ...
Um bei der Ausführung durch den Dienst die Ausgabe zu "speichern", versuch mal die Ausgabe in eine Datei umzuleiten, also z.B. "start test.bat > C:\logfile.txt 2>&1"
Was steht nachher in der Datei?
Gruss
lousek