Windows Updates

Scorcher
Beiträge: 12
Registriert: 01 Okt 2012, 09:49

Re: Windows Updates

Beitrag von Scorcher »

Leider nein. Ich habe in meinem Netzwerk nur XP Clients.
Andrago
Beiträge: 61
Registriert: 07 Jan 2011, 14:04

Re: Windows Updates

Beitrag von Andrago »

Danke für das gute Script!!! Ich habe trotzdem ein paar Anregungen:
Also es scheint wohl auch auf Windows7 Clients gut zu laufen.

Aber mir ist aufgefallen, dass das Script so jetzt nicht unbedingt immer gut ist m.M.n..
Ich habe das gerade auf einer Test-Windows -VM aufgerufen - ON DEMAND.
Dann fährt der Rechner ja im Betrieb runter ohne Möglichkeit, dass der User seine offene Arbeit speichern kann. Klar, wird man normalerweise das nciht OnDemand ausführen (erst recht, wenn man es weiß), aber ich meine ja nur.
Werde es morgen wohl an einem normalen PC testen, wenn ich dazu komme.

Außerdem bin ich mir unsicher, ob ein einmaliges aufrufen der setup.ins reicht. Da ich es nicht als always machen möchte.
Dies ist normalerweise auch nur bei der Erstinstallation eines PCs problematisch, da dieser ja meistens erst nach ein paar Mal suchen und anderen Updates, die er erst installieren muss, alle Updates gefunden hat & installieren kann.
Der wird jetzt ja dann nur einmal Updates suchen und installieren. Aber aufbauende Updates werden nicht nochmal gesucht.
Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Windows Updates

Beitrag von tobias »

mhhh macht der nach den updates automatisch ein reboot?
Mein 1. Problem war immer das ich nicht steuern konnte ob/wann er neustarten soll.
Ich musste den Reboot ja via OPSI steuern um den Script Ablauf nicht zu unterbrechen....

dann könnte man nach dem updaten und dem reboot das ausführen:

Code: Alles auswählen

$Session= New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()
$list = $Searcher.Search('IsInstalled = 0 and IsHidden = 0')
write-host $list.updates.count
das fragt vom WSUS ab ob noch weitere Updates ausstehen. Allerdings muss man Windows vorher einmal suchen lassen.

Mein 2. problem war immer das

Code: Alles auswählen

wuauclt /detectnow
wuauclt /updatenow
immer nur funktionierten wenn ein Benutzer angemeldet war....
Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Windows Updates

Beitrag von tobias »

hi,

ich habe nun einen ganz anderen Ansatz für mein Script und zwar mit einer Zusatz software die sich WUINSTALL nennt.
Es gibt eine kostenfreie Version die hab ich aber noch nicht getestet sollte aber denke ich auch funktionieren.

Vielleicht willst ja jemand testen. Bisher haben 2 tests einwandfrei funktioniert inkl. reboot.
Wenn man einen WSUS nutzen will kann man den beim Aufruf mit angeben ansonsten den ganzen Aufruf "/use_wsus http://YOUR_WSUS" rausnehmen dann sucht das tool online sofern der WSUS nicht per GPO publiziert wurde - allerdings ungefiltert inkl. allen language packs....

Code: Alles auswählen

[ACTIONS]
DefVar $Flag$
DefVar $WinstRegKey$
DefVar $RebootRegVar$
DefStringList $counterString$
DefVar $CounterVar$
DefVar $trim$
DefVar $INST_SystemType$ 

Set $INST_SystemType$ = GetSystemType



;--------------------------------------------------------------------------------
; First run
;--------------------------------------------------------------------------------
if ($INST_SystemType$ = "64 Bit System")
	DOSBatch_install_updates_x64
else
	DOSBatch_install_updates_x86
endif

;--------------------------------------------------------------------------------
; Check & Reboot
;--------------------------------------------------------------------------------
winbatch_psactivate
set $counterString$ = getOutStreamFromSection('execWith_powershell "Powershell"')
 
set $CounterVar$ = takeString(0,$CounterString$)
set $trim$ = trim($CounterVar$)
 
 
if $trim$ =  "0"
	comment "Keine Updates Verfügbar"
	ExitWindows /Reboot
 
else
	ExitWindows /ImmediateReboot
	comment weitere Updates verfügbar reboot wurde initialisiert !

endif



[DOSBatch_install_updates]
%scriptpath%/WUInstallX64.exe /install /use_wsus http://YOUR_WSUS /logfile_append c:/tmp/wuinstall.log 

[winbatch_psactivate]
powershell Set-ExecutionPolicy RemoteSigned



[execWith_powershell]
$Session= New-Object -ComObject Microsoft.Update.Session
$Searcher = $Session.CreateUpdateSearcher()
$list = $Searcher.Search('IsInstalled = 0 and IsHidden = 0')
write-host $list.updates.count


Edit: ich habs nun auch im WIKI veröffentlicht. Als Hinweis evtl. noch das das Script dafür gedacht ist die Reinstallation von Rechnern noch weiter zu automatisieren. Außerdem werden Fehler nicht abgefangen - schlägt ein Update immer wieder Fehl ist der Rechner in einer Reboot Schleife gefangen (man kann danach einfach den Setup Schalter via configed rausnehmen um diese zu beenden)
Ein abfangen ist schwierig weil WINST nicht mit Zahlen rechnen kann. Ansonsten könnte man einen Flag in der Registry setzen und hochzählen.
Da das Paket bei einer Reinstallation ohne hin das letzte ist welches ausgeführt wird ist es aus meiner Sicht aber auch nicht notwendig dort nun Zeit reinzuinvestieren und das ganze via externe tools zusammenzufrickeln.
runamoK
Beiträge: 15
Registriert: 27 Mär 2013, 15:31

Re: Windows Updates

Beitrag von runamoK »

Funktioniert bei mir super mit der Trial-Version von Wuinstall.
Habe es mit Win7 x64 getestet.

Das Always muss ich irgendwann herausnehmen, sonst läuft es in Endlosschleife weiter, oder?
Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Windows Updates

Beitrag von tobias »

runamoK hat geschrieben:Funktioniert bei mir super mit der Trial-Version von Wuinstall.
Habe es mit Win7 x64 getestet.

Das Always muss ich irgendwann herausnehmen, sonst läuft es in Endlosschleife weiter, oder?
Ja wenn die Abfrage zum WSUS nicht klappt oder Optionale Updates nicht rausgenommen werden läufts (noch) in einer Endlosschleife.
Verbesserung ist aber in Planung.
In zukünftigen Versionen wird es möglich sein festzulegen wie oft der PC maximal neugestartet werden darf / soll.
Außerdem werd ich nen Schalter einbauen ob man die WSUS Abfrage machen will oder nicht (für leute ohne WSUS die das Script einfach X-mal durchlaufen lassen wollen)
Hab nur immoment noch andere Projekte am laufen und daher zu wenig Zeit für OPSI :/ aber das wird wieder anders :)
Antworten