Hallo zusammen, seit gestern morgen stürze ich mich quasi aus purer verzweiflung auf AutoIT.... Ich soll 20 Rechner gelicher Bauweise mit einem total veralteten Script Installieren, dass ich als kleienr Azubi nicht verändern darf -.-. Nun läuft das Script soweit auch und ich hab mittlweile Treiberpakete, Netzlaufwerke und einige andere Sachen zum Laufen gebracht. Nun fehlt aber noch, dass das WindowsUpdate automatisch durchläuft. Erstmal liegt das Problem vor, dass ich das System zum Update zwingen muss. Was dank des "wuauclt" Windowsbefehls ja nciht so schwer ist.
Mein Problem, ich kann das aktive UpdateFenster welches im Hintergrund und als Prozess existierend dargestellt wird´, nicht aufgerufen werden kann.
Das Script welches die Updates durchführen soll sieht so aus: [spoiler]
[autoit]BlockInput(1)
$list = ProcessList("wuauclt.exe")
$pid = $list[1][1]
$prozess = ProcessExists("wuauclt.exe")
$if = $prozess
DriveMapAdd("Z:", "\\netzlaufwerk\d$",0, "domain\user", "password")
sleep(30000)
if $if=1 then
Run("cmd.exe")
WinActivate("C:\WINDOWS\system32\cmd.exe","")
Sleep(10000)
Send("wuauclt /detectnow_",0)
Send("{ENTER}")
WinClose("C:\WINDOWS\system32\cmd.exe")
EndIf
Sleep(5000)
if $if=$pid then
WinSetState("Automatische Updates","",@SW_ENABLE)
;WinSetState("Automatische Updates","",@SW_SHOW)
WinActivate("Automatische Updates","")
ControlCommand("Automatische Updates","Wie sollen Updates installiert werden?","Button6","Check")
ControlClick("Automatische Updates","Wie sollen Updates installiert werden?",1,"left")
WinWaitActive("Automatische Updates","Die folgenden Updates wurden nicht installiert:")
ControlClick("Automatische Updates","Die folgenden Updates wurden nicht installiert:",64421,"left")
ElseIf $if=1 Then
Run("Z:\!Reinhard\StartupCPL\Startup.exe")
ControlClick("Datei öffnen - Sicherheitswarnung","Der Herausgeber ",4423)
WinWaitActive("Startup Control Panel 2.8 by Mike Lin","Property Page")
ControlClick("Startup Control Panel 2.8 by Mike Lin","Property Page",1001,"left")
Send("{DOWN 1}" & "+{F10}" & "{DOWN 3}" & "{ENTER}")
WinClose("Startup Control Panel 2.8 by Mike Lin","Property Page")
MsgBox("Benutzerinformation","Userinfo","Sämtliche WindowsUpdates wurden erfolgreich Installiert")
endif
BlockInput(0)
Exit
[spoiler]
Ist vielleicht noch nicht das Gelbe vom Ei, aber der Prozessstatus wird korrekt zurückgeeben....zumindest führ das Script es richtig aus.
Noch besser wäre übrigens wenn mir wer sagen könnet wie sich das System nach dem Neustart automatisch wieder anmeldet und das solange, bis keine WindowsUpdates mehr geladen werden.
Gruß Martin