Hallo allerseits,

ich habe an dem Skript etwas angepasst um es ein bisschen zu vereinfachen, über Anregungen und Komentare würde ich mich sehr freuen.

ALT:

“[shellInAnIcon_Check]

@echo off

Powershell %scriptpath%\check.ps1

@echo on”

Neu:

“[shellInAnIcon_Check]

@echo off

powershell $Sess=New-Object -ComObject microsoft.update.session;$Se=$Sess.CreateUpdateSearcher() ; $Se.Search('IsInstalled=0 and IsHidden=0').updates.count

@echo on”

somit wird keine .ps1 Datei mehr benötigt und die Aktivierung der Powershell skripte muss nicht mehr auf den Clients erfolgen.

Ich habe bei uns das “regedit /s %scriptpath%\WSUS.reg” ersetzt, da ich die Infomationen für den WSUS bei uns über “gpupdate” abfragen kann. Der Befehl sieht bei mir nun wie folgt aus:

start /wait gpupdate /force

Das start /wait habe ich an mehreren stellen angewandt um sicherzustellen das die Befehle erfolgreich ausgeführt worden sind bevor das Skript weiter abgearbeitet wird.

Ich habe noch drei Probleme:

1. Es scheint das meinem Client nicht genügend Zeit bleibt um die Updates vom WSUS herunter zuladen. Bis jetzt habe ich versucht dem Client über einen kleinen Trick etwas zeit zu verschaffen “ping 11.11.11.11 -n 3600 > NULL” somit wird ein ping auf eine nicht vorhandene adresse ausgelöst (Timeout für ping gleich 1sek.) da mit “-n 3600” dieses 3600 mal wieder holt wird hat der Client nun 1 std. Zeit um “wuauclt /updatenow” durchzuführen. Das “> NULL” ist nur dafür damit ich in der LOG nicht 3600 mal stehen habe das der Host nicht zuerreichen ist. Aber so ist der Client eine ganze Stunde geblockt, auch wenn keine Updates installiert werden. Was nicht umbedingt optimal ist.

2. Keine Kontrolle ob der Client die Updates installiert hat

3. Die Updateschleife. Die Idee währe das über ein Regestriekey zu lösen, hab aber grad noch keine Idee wie es um zusetzen ist.


Ich habe ein Skript gebaut, das ähnliches tut, aber vollständiger ist. Es ist unter wsusclient abgelegt. — WRatzka 2013/02/06 18:16