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

Application Watchdog selbst gemacht mit WSH

Anleitung Entwicklung VB for Applications

Mitglied: Kosh

Kosh (Level 2) - Jetzt verbinden

13.08.2007, aktualisiert 02.12.2008, 15082 Aufrufe, 17 Kommentare, 1 Danke

01.
sProcessName = "meineapplikation.exe"         
02.
' Hier die Ausführbare Datei der zu überwachenden Applikation angeben 
03.
 
04.
sComputer = "."    
05.
Set oWmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2") 
06.
 
07.
Set oShell = CreateObject("WScript.Shell") 
08.
 
09.
Do 
10.
  Set colProcessList = oWmi.ExecQuery("Select * from Win32_Process Where Name = '" & sProcessName & "'") 
11.
 
12.
  If colProcessList.Count = 0 Then 
13.
     oShell.Run """C:\pfad\meineapplikation.exe""", 1, False 
14.
     ' Hier den Pfad zur überwachenden Applikation angeben. 
15.
 
16.
     ' Um die Applikation minimiert zu starten: 
17.
     ' oShell.Run """C:\pfad\meineapplikation.exe""", 7, False 
18.
      
19.
      
20.
     WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("fail.log", 8, true).WriteLine (Date() & " " & Time() & " Task neugestartet") 
21.
     ' Schreibt einen LogFileeintrag wenn der Task neu gestartet wird. (Thx an MISTAX) 
22.
   End If 
23.
 
24.
  WScript.Sleep 5 * 60 * 1000        
25.
  ' Hier kann die Wartezeit bis zur nächsten Prüfung eingestellt werden. Standard: 5 min 
26.
Loop
Q: Was macht das Teil?

A: Dieses Script überwacht (wenn gestartet) einen definierten Prozess ob dieser läuft oder nicht.
Wenn der Prozess läuft, geht das Script, oder besser gesagt der Thread, für 5 Minuten (kann unter WScript.Sleep x * 60 * 1000 eingestellt werden. x = Minuten) in den Sleep-Mode.
Wenn nicht, wird der definierte Prozess gestartet, und danach geht der Thread schlafen.



Q: Muss ich hier mit dem Taskplaner etwas einplanen?

A: Nein. Das Script einfach starten (Autostart, Gruppenrichtlinie,... ) und das wars. Es läuft dann ständig im Hintergrund (standardmässig unter WScript.exe) und benötigt daher ständig ca. 1-2 MB Speicher.
Da der Thread jedoch die meiste Zeit im Sleep-Mode verbringt, wird keine wertvolle Prozessorzeit verbraten.
Mitglied: Iwan
13.08.2007 um 12:52 Uhr
schöne Sache... das Script hätte ich vor gut 3 Monaten gebraucht
Bitte warten ..
Mitglied: manuel-r
13.08.2007 um 14:24 Uhr
Blöde Frage: Läuft das Script auch mit Benutzerrechten? Ich würde damit nämlich dann gerne Outlook offen halten. Wir haben ein paar Spezialisten, die Outlook immer wieder schließen und sich dann wundern, dass sie keine Mails bekommen

Manuel
Bitte warten ..
Mitglied: Kosh
13.08.2007 um 14:26 Uhr
wenn es im autostart oder im logon script gestartet wird, dann läuft es unter dem angemeldeten benutzer.
Bitte warten ..
Mitglied: manuel-r
13.08.2007 um 14:56 Uhr
Grundsätzlich funktioniert es. Aber:
Wenn ich das Script im Logonscript aufrufe ergeben sich erwartungsgemäß zwei Probleme. Binde ich das Script einfach mit cscript <pfadzumscript> ein geht es danach nicht weiter, da das Logonscript auf das Ende des Processes wartet. Versuche ich es mit start cscript <pfadzumscript> geht's zwar weiter aber es bleibt ein unschönes CMD-Fenster stehen.
Was tun?

Manuel
Bitte warten ..
Mitglied: Kosh
13.08.2007 um 15:05 Uhr
wenn dus übers logonscript startest, nutze:

start cscript meinscript.vbs

das cmd fenster das ansonsten stehen bleibt ist eigentlich das anmelde-batch das auf das ende vom script wartet.
Bitte warten ..
Mitglied: manuel-r
13.08.2007 um 15:12 Uhr
Das finde ich jetzt aber merkwürdig. Wenn ich beim Aufruf mit start den Interpreter cscript mit angebe, dann bleibt die Box stehen. Lasse ich ihn weg geht's. War nur etwas doof an meinem Rechner, weil ich hier VBS-Dateien standardmäßig mit meinem Editor verknüpft habe also musste ich zum Testen den Interpreter mit angeben. Nachdem ich auf starten mit WSH umgestellt habe funktioniert's. Dann schalte ich das mal scharf in der Domäne
Bitte warten ..
Mitglied: Kosh
13.08.2007 um 15:14 Uhr
mein fehler.

meinte auch call und nicht start. is ja auch schon heimgehzeit
Bitte warten ..
Mitglied: Oli82
20.09.2007 um 19:04 Uhr
Hab ein Problem mit dem Script.
Das Script versucht alle 5 Minuten die zu überwachende .exe zu starten, obwohl sie schon läuft.

Kann ich das irgendwie abstellen?
Bitte warten ..
Mitglied: Kosh
01.10.2007 um 07:37 Uhr
moin.

hast du in der ersten zeile auch den richtigen prozessnamen angegeben?

01.
sProcessName = "meineapplikation.exe"  
Bitte warten ..
Mitglied: MISTAX
25.11.2008 um 13:19 Uhr
01.
oShell.Run "C:\pfad\meineapplikation.exe", 1, False
Wenn hier steht "C:\Programme\Audacity\audacity.exe" ist es kein Problem;

wenn hier aber steht: "C:\Programme\Internet Explorer\iexplore.exe"

findet er den Pfad nicht. Als absoluter VBS-Laie tippe ich auf das Leerzeichen; hat jmd. einen Tip, wie es trotzdem funktioniert?

Danke!
Bitte warten ..
Mitglied: Kosh
25.11.2008 um 13:30 Uhr
01.
oShell.Run """C:\pfad mit leerzeichen\meineapplikation.exe""", 1, False
sollte gehen.
Bitte warten ..
Mitglied: MISTAX
25.11.2008 um 13:40 Uhr
Danke vielmals, es klappt. Ich habe noch eine Zeile in den watchdog eingefügt, damit er mir eine Log schreibt, wenn er das Programm neustarten muss; vermutlich für euch überhaupt kein Problem, aber vielleicht schaun hier ja noch mehr so Laien vorbei, wie ich.

01.
WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("fail.log", 8, true).WriteLine (Date() & " " & Time() & " Task neugestartet")
Einzufügen nach Zeile 14.
Bitte warten ..
Mitglied: Kosh
25.11.2008 um 13:44 Uhr
Nice, danke. Hab das gleich mal hinzugefügt.
Bitte warten ..
Mitglied: Rehner
29.11.2008 um 09:01 Uhr
Hallo Kosh,

super Anleitung, genau was ich gesucht habe! (habe auch das Problem mit dem dauernd ausversehen beendeten Outlook)
Jedoch bekomme ich bei der Ausführung des Scripts eine Fehlermeldung das die Anwendung nicht gefunden werden konnte. (Zele 13 Zeichen 6) Ich bin mir jedoch sicher, das der Pfad zur Outlook exe richtig angegeben ist.

Hier der entsprechende Code-Abschnitt:
01.
 If colProcessList.Count = 0 Then 
02.
     oShell.Run "C:\Programme\Microsoft Office\OFFICE11\OUTLOOK.exe", 1, False    
03.
     ' Hier den Pfad zur überwachenden Applikation angeben
Weiß jemand rat?

Gruß Nicolas
Bitte warten ..
Mitglied: MISTAX
29.11.2008 um 16:54 Uhr
Siehe 3-4 Posts drüber, gleiches Problem wie ich; Lösung steht da auch schon ;)
Bitte warten ..
Mitglied: Rehner
30.11.2008 um 10:35 Uhr
Danke, wer lesen kann ist halt doch klar im Vorteil!

Eine Frage habe ich aber noch, ist es möglich die Anwendungen über das Script mit Parametern wie z.B. "minimiert" zu starten?
Habe nämlich das dumpfe Gefühl das wir wieder so Helden dabei haben, die das aufpoppende Outlook mit dem Kreuz beenden, anstatt es ins Tray zu minimieren.

Gruß Nic
Bitte warten ..
Mitglied: Kosh
02.12.2008 um 08:12 Uhr
Versuch mal Zeile 13:

01.
oShell.Run "C:\pfad\meineapplikation.exe", 7, False
EDIT: Danke für das viele Feedback Leute!
Ich arbeite alle Änderungen und Ideen gleich oben in den Originalcode ein.
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(1)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Windows Server
User-ID zu Application Crash

Frage von pablovic zum Thema Windows Server ...

Windows Server
Server 2016 RemoteApps interfere with any full screen application! (1)

Link von DerWoWusste zum Thema Windows Server ...

Windows Server
gelöst Excel Application Error auf TS 2012 R2 (1)

Frage von pablovic zum Thema Windows Server ...

Windows Netzwerk
gelöst Excel Liste soll Partnerfirma zugänglich gemacht werden (3)

Frage von Knorkator zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...