Hallo zusammen,
ich habe ein Windows-Update Skript in abgespeckter Version was genauso abgespeckt funktioniert, denn sonst würde ich hier nicht schreiben :-P
Mein Wunsch: Nachfrage der Anzahl von Windows-Updates auf dem Server X und Rückgabe dessen. Wenn der Server 0 Updates ausstehend hat, gibt er ein grünes OK zurück. Wenn er welche ausstehend hat, soll er die Anzahl zurückgeben und es als Warnung aufzeigen.
Was macht er wirklich? Er fragt den Server ab und gibt auch ein grünes OK bei 0 aus. Allerdings, ignoriert er meine Exit-Codes wenn er Updates hat. Aktuell habe ich einen Server mit 7 ausstehenden Updates. Meine Rückgabe lautet Write-Host $Val:Updates. Er gibt die 7 auch zurück, allerdings zeigt er grün "Updates" an. Wenn ich hier mit Grenzwerten arbeite, wechselt er auch in eine Warnung bzw. Fehler..
Das würde mir auch reichen, wenn die Ausgabe dann nicht : "7 Updates steht über dem Grenzwert von 0 Updates etc." anzeigen würde.
Wie kann ich das korrigieren? Vielen lieben Dank :)
Anbei mein Skript.
param( [string]$SRV ="", [string]$UserName="", [string]$Password="" ) # Zugangsdaten erstellen und verschlüsseln $SecPasswd = ConvertTo-SecureString $Password -AsPlainText -Force $Cred = New-Object System.Management.Automation.PSCredential ($UserName, $SecPasswd) # PowerShell-Remoting-Aufruf zu dem Rechner Invoke-Command -Computer $SRV -ScriptBlock { # Festlegung des COM-Objekts in Variable $Searcher = New-Object -ComObject Microsoft.Update.Searcher # Festlegung der Kriterien und Suche $Criteria = "IsInstalled=0 and Type='Software'" $SearchResult = $Searcher.Search($Criteria).Updates $Val = $SearchResult.Count if($Val -le 0){ Write-Host 0:OK exit 0 } else { Write-Host $Val:Updates exit 1 } } -Credential $Cred
Add comment