Hallo,
ich bin gerade dabei, mich in Auto-It einzuarbeiten und damit auch neu hier im Forum. Ich bin schon ziemlich beeindruckt, was mit Auto-It so alles möglich ist.
Nun wollte ich es nutzen, um eine Web-Anmwendung durch Nagios überwachen zu lassen. Hierfür habe ich ein Script geschrieben, das den IE öffnet, auf das Aufpoppen der Login-Maske wartet, sich anmeldet, ein paar Sachen prüft und sich dann wieder an der Anwendung abmeldet. Das Script läuft (egal ob kompiliert oder nicht kompiliert) manuell gestartet prächtig, allerdings gelingt es mir nicht, es in Nagios einzubinden.
Das Script habe ich für die Nagios-Nutzung kompiliert, es liegt also als exe vor. Um es in nagios einzubinden nutze ich den NS-Client. Dieser läuft als Dienst im System-Kontext. Er darf mit dem Desktop interagieren.
Mein Script beginnt so:
[autoit]
#include <ie.au3>
$file = FileOpen("log.txt", 2)
FileWrite($file, "IE INcluded" & @CRLF)
FileClose($file)
$oIE=_IECreate("http:/meine-anwendung/",1,0,1,1)
if @error > 0 Then
ConsoleWriteError("Critical - Fehler beim Öffnen der ersten Startseite von der Anwendung")
exit(2)
EndIf
$file = FileOpen("log.txt", 1)
FileWrite($file, "Initiale Startseite geöffnet" & @CRLF)
FileClose($file)
;Prüfung, ob auf der ersten Seite auch der erwartete Text steht
$text = _IEBodyReadHTML($oIE)
$ergebnis=StringRegExp($text, '.*Zur Anmeldung.*')
....
[/autoit][autoit][/autoit][autoit][/autoit]Dieses Script rufe ich mit einem anderen Script auf, um es im Kontext eines bestimmten Nutzers laufen zu lassen (das habe ich als mögliche Lösiung in einem Nagios-Forum gefunden (http://www.nagios-portal.org), es muß sicher nochmal ordentlich geschrieben werden:
[autoit][/autoit][autoit][/autoit][autoit]$ergebnis= RunAs("benutzername", "", "passwort", 1, "<Pfad>meinscript.exe", "<Pfad zum Script-Verzeichnis>", @SW_MAXIMIZE )
Sleep(100000)
ConsoleWriteError("OK - Anwendung wurde gestartet")
exit(0)
Wenn ich mir das durch das erste Script erzeugte Log ansehe sehe ich, daß er bis "IE INcluded" kommt, das Öffnen des Internet-Explorers scheint nicht zu klappen, die zweite Meldung kommt nicht. Auf dem Bildschirm tut sich auch nichts. Im Taskmanager kann ich sehen, daß es einen Prozess gibt, der wie mein Script heißt, der aber nie beendet wird.
Alles passiert auf einem Windows Server 2003 und im IE 8.
Nun meine Fragen:
- Wie bekomme ich es hin, daß der IE gestartet wird, wenn ich das kompilierte Script aus dem Dienst heraus aufrufe?.
- Falls dies vielleicht gar nicht mein Problem ist: Habe ich dem Aufbau einen Fehler oder mache ich da prinzipiell was falsch?
Vielen Dank für Eure Hilfe!
Miwu