Top-Themen

Aktuelle Themen (A bis Z)

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
GELÖST

Überwachen ob ein Skript läuft - ausgeführt als geplante Task unter Windows Server 2008

Frage Entwicklung Batch & Shell

Mitglied: icsat

icsat (Level 1) - Jetzt verbinden

28.05.2013 um 16:03 Uhr, 2472 Aufrufe, 5 Kommentare, 1 Danke

Hallo,

ich muss prüfen, ob eine ein Batch-Skript (cmd.exe) noch läuft.

Das Problem dabei ist, dass ich in einem Batch-Skript (skript1) ein Skript (skript2) eines SW-Herstellers aufrufe, welches sofort mit ERRORLEVEL=0 zurück kommt. Dieser ERRORLEVEL bezieht sich aber nur darauf, dass ein weitetres Skript (skript3) erfolgreich gestartet wurde
Ich muss nun in skript1 abwarten, dass skript3 beendet ist, bevor ich die Verarbeitung fortsetzten kann. (OK, eigentlich startet skript3 noch ein skript4 bevor es sich beendet und ich muss auf das Ende von skript4 warten aber ist hier nicht das Problem)

Bisher (Windows Server 2003) habe ich das ganze in der Form gelöst, dass ich über "tasklist" und den eindeutigen Fenstertitel des skript3 die ProzessID ermittelt habe und in bestimmten Intervallen diese PID abgefragt habe. Ist die PID nicht mehr vorhanden konnte ich meine Verarbeitung fortsetzen.

Nun habe ich das ganze nach Windows Server 2008 portiert und habe folgendes festgestellt.
Starte ich mein Skript per Doppelklick oder per Aufruf aus einer cmd funktioniert alles wie gewünscht.
Nutze ich hingegen eine geplante Task (bzw. at aus der cmd) steht mit "tasklist" der Fenstertitel nicht zur Verfügung.

Hat jemand eine Idee, wie ich das Problem lösen kann?

Die Skripte 2 und 3 kann bzw. will ich eigentlich nicht anpassen, da es sich um Skripte eines SW-Herstellers handelt und ich diese aus Support- und Wartungsgesichtspunkten nur ungerne anfasse.
Der Softwarehersteller weiss grundsätzlich darum, dass die Jobsteuerung an der Stelle nicht optimal gelöst ist, hat aber aktuell kein Interesse dies kurzfristig zu verändern.
Es muss sich also um eine Lösung handeln, die über skript1 abzubilden ist.


Falls jemandem nicht ganz klar ist, wass ich meine. Hier ist ein kleines Beispiel in 2 Skripten:

MeinTest.bat:
01.
start "MeinTest2" "C:\temp\meintest2.bat"
MeinTest2.bat:
01.
tasklist /V /FO TABLE|find "MeinTest2" >C:\temp\find.tasklist.log 
02.
tasklist /V /FO TABLE >C:\temp\all.tasklist.log
Starte ich "MeinTest.bat" direkt enthält die Datei "find.tasklist.log" eine Zeile und die Datei "all.tasklist.log" die gesamte Tasklist.
Starte ich "MeinTest.bat" als geplante Task über "at" ist die Datei "find.tasklist.log" leer und die Datei "all.tasklist.log" wieder die gesamte Tasklist, aus der sich dann "orakeln" lässt, dass ein "cmd.exe" Prozess zu "MeinTest2.bat" gehört.


Gruß icsAT
Mitglied: certifiedit.net
29.05.2013 um 11:03 Uhr
Hi,

ein möglicher Ansatz (ungetestet) wäre evtl, dass du Abfragst, ob der entsprechende geplante Task gerade aktiv ist und welchen Status er hat.

Grüße
Bitte warten ..
Mitglied: pieh-ejdsch
29.05.2013, aktualisiert 30.05.2013
moin,

Die Skripte 2 und 3 kann bzw. will ich eigentlich nicht anpassen, da es sich um Skripte eines SW-Herstellers handelt und ich diese aus Support- und Wartungsgesichtspunkten nur ungerne anfasse.
dann baue zu dem "auf das zu wartende Script" ein Gleichnamiges Script
01.
@echo off 
02.
call "D:\auf das zu wartendende Umbenannte Original Script" 
03.
waitfor /si ScripnameFertig 1>nul
das Original benennst Du Um.

Dein 1. Script startet normal Das 2. Script und Wartet auf die Meldung "ScripnameFertig"
01.
@echo off 
02.
setlocal 
03.
set "LOG=D:\Script 1_Log.txt" 
04.
call "D:\Script 1.cmd" || >&2 echo FEHLER! Script 3 konnte nicht gestartet werden. && >>"%log%" echo FEHLER! Script 3 konnte nicht gestartet werden. &&exit /b 1 
05.
>>"%log%" echo Script 3 wurde gestartet. 
06.
echo Script 3 wurde gestartet. 
07.
 
08.
 rem Warte auf SriptEnde  
09.
waitfor ScripnameFertig 
10.
 
11.
rem hier geht es nachher weiter.

Somit belässt Du Dein HerstellerScript und hast es nur Umbenannt.

Gruß Phil
Bitte warten ..
Mitglied: icsat
29.05.2013 um 11:54 Uhr
Hi certifiedit,

das funktioniert leider nicht oder ich habe dich falsch verstanden.

Mein Skript1 läuft als geplante Task. Wenn ich die Task abfragen würde wäre sie natürlich da und aktiv. Ich muss aber wissen was mit skript3 ist.

Gruß icsAT
Bitte warten ..
Mitglied: icsat
29.05.2013 um 12:05 Uhr
Hey Phil,

danke für den Ansatz. Waitfor war mir bisher nicht bekannt.
Liegt vermutlich daran, das mir die 2008 er Kiste gerade erst vor die Nase gestellt wurde
Werde mit dem Ansatz später mal etwas testen.

Gruß icsAT
Bitte warten ..
Mitglied: icsat
30.05.2013, aktualisiert um 09:41 Uhr
Moin Moin,

ich habe das Problem zwischenzeitlich gelöst.

Danke noch mal an Phil, dessen Ansatz mich dazu bewegt hat die Dinge noch einmal anders zu betrachten.

Ich hatte mich allerdings doch gegen "WAITFOR" entschieden, da ich auch noch einen 2003er Testserver habe auf dem "WAITFOR" natürlich nicht vorhanden ist und ich ganz gerne auf allen Systemen die gleichen Skripte laufen habe. Ich wollte es dann, angelehnt an Phil's Vorschlag, alternativ mit einer Datei lösen, deren vorhanden sein oder nicht vorhanden sein ich in skript1 abfrage.

Gelöst habe ich es dann aber doch noch wieder anders. Das hat aber eigentlich nichts mehr mit meiner Fragestellung zu tun.
Ich habe mir die Skripte des SW-Herstellers noch einmal genauer angesehen und festgestellt, dass skript3 sehr wohl auf skript4 warten kann, wenn bestimmte Umgebungsvariablen gesetzt sind. Schade, dass mir die Hersteller Hotline das nicht sagen konnte. Weiter habe ich festgestellt, dass skript2 "nur" prüft ob bestimmte Umgebungsvarieblen korrekt gesetzt sind und theoretisch mehrere Instanzen von skript3 startet. (Theoretisch, weil es bei uns immer nur eine ist).
Daher übergehe ich jetzt skript2 und starte skript3 direkt aus skript1 und warte auf dessen Beendigung, welche dank der gesetzten Umgebungsvariablen erst nach Beendigung von skript4 erfolgt.
Das ist zwar nicht im Sinne des Erfinders (Softwareherstellers) aber was solls.

Gruß icsAT
Bitte warten ..
Ähnliche Inhalte
Windows Server
Powershell Skript als geplanter Task
gelöst Frage von Ex0r2k16Windows Server9 Kommentare

Hallo zusammen, ich habe ein PS Skript in meinen geplanten Tasks was der "SYSTEM" User nicht ausführt. Führe ich ...

Windows Server
Geplanter Task in GPO wird nicht ausgeführt (shutdown.exe für Clients)
Frage von tobivanWindows Server15 Kommentare

Hallo, unter Windows 2008 R2 habe ich ein "Gruppenrichtlinienobjekt" angelegt. In den "Systemsteuerungseinstellungen" der "Computerkonfiguration" habe ich eine "Geplante ...

Windows Server
Geplante Tasks starten nicht automatisch
Frage von TiTuxWindows Server

Hallo, wir haben 5 RDP Session-Host Server in einer Windows Server 2012 R2 Farm am Laufen. Auf allen Server ...

Windows Systemdateien
Geplante Task einmalig über GPO ausführen
gelöst Frage von WinLiCLIWindows Systemdateien5 Kommentare

Hallo zusammen, ich habe ein Prüfskript per Batch geschrieben, dass auf jedem Rechner einmalig laufen soll. Ich kann zwar ...

Neue Wissensbeiträge
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 3 TagenWebbrowser7 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 3 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...