Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Dienst starten und Stoppen, Datei löschen auf remote system - wie?

Frage Microsoft Windows Tools

Mitglied: dermoritz

dermoritz (Level 1) - Jetzt verbinden

08.02.2012 um 16:28 Uhr, 5087 Aufrufe, 17 Kommentare

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
Mitglied: Lousek
08.02.2012 um 16:41 Uhr
Sali

Du könntest nach dem sc stop noch ein sleep 5 benutzen ;)

Gruss
lousek
Bitte warten ..
Mitglied: dermoritz
08.02.2012 um 16:48 Uhr
und wenn das stoppen 6 sekunden dauert funktionierts wieder nicht - je nach dem was auf dem tomcat läuft kann das stoppen ziemlich lange dauern und ich brauch etwas was immer funktioniert.
Bitte warten ..
Mitglied: Lousek
08.02.2012 um 16:50 Uhr
Mit sc query nach dem Stoppen des Dienstes den Status abfragen, bis er wirklichg gestoppt ist?

Gruss
lousek
Bitte warten ..
Mitglied: dermoritz
08.02.2012 um 16:52 Uhr
kannst mir ein besipiel geben? braucht man da eine Schleife?
Bitte warten ..
Mitglied: Lousek
08.02.2012 um 17:00 Uhr
Ich denke, dass du es mit Batch machst ...

Ich bin auch nicht wirklich fit in Batch, aber da es keine While schleifen gibt, musst du es wohl "irgendwie" so lösen:

sc stop Tomcat
:while
IF sc query überprüfung goto :next
goto :while

:next
file löschen
sc start Tomcat

Gruss
lousek
Bitte warten ..
Mitglied: Lousek
08.02.2012 um 17:05 Uhr
oder aber, wie ich gerade entdeckt habe, viel einfacher:

nimm net stop Tomcat und net start Tomcat anstatt sc start, weil bei net stop wartet er bis der Service wirklich gestoppt ist ;)
Bitte warten ..
Mitglied: dermoritz
08.02.2012 um 17:12 Uhr
"net" geht aber nur lokal oder?

net ist genau der befehl den ich in der bat-Datei benutze die PSExec ausführen soll - aber das klappt ja leider auch nicht
Bitte warten ..
Mitglied: Lousek
08.02.2012 um 17:15 Uhr
Die bat-Datei wird ja aber durch PsExec "lokal" auf dem entfernten Client ausgeführt, also müsste das eigentlich gehen ...

Gruss
lousek
Bitte warten ..
Mitglied: dermoritz
08.02.2012 um 17:17 Uhr
und das Problem ist das es eben nicht geht. Die Frage ist warum oder was ich tun kann oder welche ALternativen es gibt.
Bitte warten ..
Mitglied: Lousek
08.02.2012 um 17:20 Uhr
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
Bitte warten ..
Mitglied: dermoritz
08.02.2012 um 17:39 Uhr
hast du meine Frage gelesen?
Bei mir klappt es auch wunderbar, wenn ich es aus der konsole starte. Das Problem tritt auf sobald ich das Kommando aus einem Dienst heraus starte (in diesem Fall Jenkins auf Tomcat). Wobei es nicht hilft den Dienst unter einem andere Benutzer auszuführen (z.b. mit dem Benutzer mit dem auch die Konsole gestartet wurde)
Bitte warten ..
Mitglied: Lousek
08.02.2012 um 18:31 Uhr
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
Bitte warten ..
Mitglied: dermoritz
09.02.2012 um 09:53 Uhr
Danke das war ein sehr guter Hinweis!

Damit bin ich auch auf das http://jenkins.361315.n4.nabble.com/remotely-executing-commands-td34764 ... gestoßen. Es scheint, dass man prinzipiell die Ausgabe und die Errorausgabe umleiten sollte damit es überhaupt aus java/.net heraus funktioniert.
Bitte warten ..
Mitglied: Lousek
09.02.2012 um 09:56 Uhr
Wenn du also die Ausgabe umleitest, funktioniert es dann? ;)

Gruss
lousek
Bitte warten ..
Mitglied: dermoritz
09.02.2012 um 11:04 Uhr
ja! - der link den ich angegeben hab begründet das damit, dass es wohl an java/.net liegt - da muss man wohl immer die ausgabe umleiten.
Bitte warten ..
Mitglied: Lousek
09.02.2012 um 11:07 Uhr
Perfekt!

Dann den "Close" nicht vergesse ;)

Gruss
lousek
Bitte warten ..
Mitglied: dermoritz
09.02.2012 um 14:27 Uhr
-- doch nicht -- es ist unzuverlässlich wie vorher. manchmal kommt errcode eins wie oben und manchmal bleibt psexec einfach hängen. Aus der Konsole funktionieren eigentlich alle Varianten.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Texteil anhand zweier Vorgaben aus Datei löschen (12)

Frage von tiforst zum Thema Batch & Shell ...

Batch & Shell
gelöst Dienst Stoppen und deaktivieren per Powershell und WMI auf remote Server (1)

Frage von pixel0815 zum Thema Batch & Shell ...

Batch & Shell
gelöst Source löschen wenn Datei im Zielordner vorhanden (1)

Frage von functionstrut zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...