mirgue
Goto Top

Tool für Windows Updates

Hallo.

Ich bin auf der suche nachen einem kleinem Tool mit dem ich von meinem Arbeistplatz aus sehen kann auf welchen Aktuelle Stand Windows ist.

Gibt es da irgendeine kleine Tool?

Vielleicht ist es ja auch mögliche mit dem Tool neue Windows Updates auf die Clients einzuspielen?!

mfg

Content-ID: 82250

Url: https://administrator.de/contentid/82250

Ausgedruckt am: 25.11.2024 um 15:11 Uhr

lector
lector 04.03.2008 um 10:09:05 Uhr
Goto Top
mirgue
mirgue 04.03.2008 um 10:25:08 Uhr
Goto Top
wie funktioniert das mit dem tool?

muss das auf jeden rechner?
TuXHunt3R
TuXHunt3R 04.03.2008, aktualisiert am 18.10.2012 um 18:35:27 Uhr
Goto Top
Vielleicht ist es ja auch mögliche mit dem Tool neue Windows Updates auf die Clients einzuspielen?!

Dann würde ich dir empfehlen, einen WSUS aufzusetzen. Dann kannst du für alle Clients im Netz deine Updates zentral verwalten.
http://www.microsoft.com/germany/technet/sicherheit/newsletter/wsus.msp ...
http://www.microsoft.com/germany/technet/prodtechnol/windowsserver/wsus ...

Zum Abfragen der Updates aller Computer würde ich das folgende Powershell-Script verwenden, welches ich im Zuge der Installation meines WSUS geschrieben habe:

# ********************************************
# InstalledUpdates.ps1
# ====================
# Listet alle Updates,
# die auf dem angegebenen PC installiert sind
# History:
# TuXHunT3R - 10.01.2008 - New Script
# ********************************************

#######################################################################################################################
# Funktionen
# ----------
function fctnTitel {
clear-host
	write-host " _____           _        _ _          _ _    _           _       _            " -foregroundcolor cyan  
	write-host "|_   _|         | |      | | |        | | |  | |         | |     | |           " -foregroundcolor cyan  
	write-host "  | |  _ __  ___| |_ __ _| | | ___  __| | |  | |_ __   __| | __ _| |_ ___  ___ " -foregroundcolor cyan  
	write-host "  | | | '_ \/ __| __/ _' | | |/ _ \/ _' | |  | | '_ \ / _' |/ _' | __/ _ \/ __|" -foregroundcolor cyan  
	write-host " _| |_| | | \__ \ || (_| | | |  __/ (_| | |__| | |_) | (_| | (_| | ||  __/\__ \" -foregroundcolor cyan  
	write-host "|_____|_| |_|___/\__\__,_|_|_|\___|\__,_|\____/| .__/ \__,_|\__,_|\__\___||___/" -foregroundcolor cyan  
	write-host "                                               | |                             " -foregroundcolor cyan  
	write-host "                                               |_|                             " -foregroundcolor cyan  
	write-host " "  
}
function fctnFusszeile {
	write-host " "  
	write-host "---------------------------------------------------------" -foregroundcolor cyan  
	write-host "Coded January 2008 by TuXHunT3R"  
	write-host " "  
}
function fctnManual {
	fctnTitel
	write-host "Listet alle HotFix-IDs der installierten MS-Updates auf"  
	write-host "und speichert das Ganze in ein entsprechendes Logfile in folgendem Ordner:"  
	write-host "\\server02\administration$\logging\InstalledUpdates-log\"  
	write-host " "  
	write-host "InstalledUpdates wird folgendermassen gestartet:"  
	write-host ".\InstalledUpdates Computername"  
	fctnFusszeile
}
#
#######################################################################################################################

#######################################################################################################################
# Main
# ----

# Variablen
$strZielcomputer = $args
$strDatum = get-date -format d
$strLogfilepfad = "<dein Logfilepfad>"  

# Die ganze Prozedur

# Oberste Switchbedingung: Ueberpruefen, ob User die Hilfe aufrufen will
switch ($strZielcomputer) {
	"" {fctnManual}  
	"?" {fctnManual}  
	"/?" {fctnManual}  
	"-?" {fctnManual}  
	"-h" {fctnManual}  
	"--h" {fctnManual}  
	"-help" {fctnManual}  
	"--help" {fctnManual}  
	"help" {fctnManual}  
	default {
		# Zweite Ebene: Per Ping und Errorlevel-Auswertung ueberpruefen, ob der Ziel-PC erreichbar ist
		fctnTitel
		write-host "Ueberpruefe, ob" $strZielcomputer "uebers Netz erreichbar ist..."  
		ping $strZielcomputer -n 2 | out-null
		if ($lastexitcode -eq "0") {  
			# Dritte Ebene: Alle Updates auslesen und die HotFixIDs in das Logfile schaufeln
			write-host "Lese HotFixIDs, Descriptions und Installationsdatum der aktuell installierten Updates raus und schaufle sie in das Logfile..."  
			"Installierte Updates " | out-file -filepath $strLogfilepfad -encoding default  
			$strZielcomputer | out-file -filepath $strLogfilepfad -encoding default -append
			get-date -format s | out-file -filepath $strLogfilepfad -encoding default -append
			Get-Wmiobject Win32_Quickfixengineering -computername $strZielcomputer | select-object Description, HotFixID, installedon | out-file -filepath $strLogfilepfad -encoding default -append
			write-host " "  
			write-host "Vorgang erfolgreicht beendet!" -foregroundcolor green   
			write-host "Pfad des Logfiles: "  
			write-host $strLogfilepfad
			fctnFusszeile
		}
		else {
		fctnTitel
		write-host "PC nicht erreichbar!" -foregroundcolor red  
		write-host "--------------------" -foregroundcolor red  
		write-host "Haben Sie den Computernamen richtig geschrieben?"  
		write-host "Bitte versuchen Sie es nochmals!"  
		fctnFusszeile
		}
	}
}
#
#######################################################################################################################

Die Zeile "$strLogfilepfad = "<dein Logfilepfad>"" muss du natürlich noch entsprechend ergänzen.

Hier erfährst du, was die Powershell ist:
PowerShell for Runaways - Part I


Gruss

TuXHunT3R
ahe
ahe 04.03.2008 um 18:11:05 Uhr
Goto Top
Hallo,

ich bin z. Zt. noch nicht besonders mit der Powershell bewandert (leider), dein Script funktioniert soweit, eine Kleinigkeit habe ich aber gefunden.

Im Logfile finde ich ziemlich viele Zeilen am Anfang mit der folgenden Strucktur:

Description                HotFixID                   installedon              
-----------                --------                   -----------              
                           File 1                                              
                           File 1                                              
                           File 1                                              
                           File 1                                              
. . .
Im Anschluss kommen dann (schätze ich 'mal) ebensoviele Zeilen mit Patchen:

. . .
Security Update for MSX... KB927978                   Version 2.1.7            
Security Update for MSX... KB927977                   Version 2.1.7            
Security update for MSX... Q936181                    20.02.2008               
Security Update for Win... KB911564                   Version 2.1.7            
Security Update for Win... KB925398                   Version 2.1.7            
Security Update for Win... KB917734_WMP9                                       
Security Update for Win... KB936782_WMP9                                       
Security Update for Win... KB923689                                            
Security Update for Win... KB941569                                            
Security Update for Win... KB873339                   Version 2.1.7            
Update for Windows XP (... KB884575                   Version 2.1.7 

Leider ist die Description nicht ganz vollständig, bei der manuellen Ausführung des Befehls ist sie es allerdings doch (mit wieder vielen Leerzeilen am Anfang...)
Get-Wmiobject Win32_Quickfixengineering -computername meincomputer | select-object Description



mfg
Axel
TuXHunt3R
TuXHunt3R 04.03.2008 um 21:43:01 Uhr
Goto Top
Tja, solche Einträge mit "File 1" habe ich auch. Bei diesen Updates ist die Hotfix-ID in der Eigenschaft "ServicePackInEffect" versteckt. Hier hat Microsoft nicht sauber gearbeitet mit der Benennung der Updates (oder ich hab noch nicht begriffen, wieso diese Updates anders benannt sind).

Ich würde dir vorschlagen, dass du folgende Codezeile änderst:
Get-Wmiobject Win32_Quickfixengineering -computername $strZielcomputer | select-object Description, HotFixID, installedon | out-file -filepath $strLogfilepfad -encoding default -append
Diese Codezeile sollte nun so aussehen:
Get-Wmiobject Win32_Quickfixengineering -computername $strZielcomputer | select-object Description, HotFixID, installedon, ServicePackInEffect | out-file -filepath $strLogfilepfad -encoding default -append

Somit kommst du in beiden Fällen zu deiner HotfixID. Entweder steht es nun in der Spalte "HotFixID" oder in der Spalte "ServicePackInEffect".
Die HotFixID identifiziert ein Update eindeutig, während die Description nur eine Kurzbeschreibung liefert (Frage: Wieviele "Update für Windows XP" hast du bis jetzt schon installiert? Es sind garantiert mehrere gewesen).
Wenn du auf der Microsoft-Website nachsiehst, suche immer nach der Hotfix-ID. Damit kommst du zu einem gescheiten Suchergebnis.


PS: Ja, ich weiss, dass das Script ein bisschen viel Kosmetik dabei hat. Dafür sind alle möglichen "falschen" Benutzereingaben abgefangen, was ja auch nicht schlecht ist.
ahe
ahe 05.03.2008 um 10:18:54 Uhr
Goto Top
Danke.

Probier' ich dann 'mal aus.

Ich finde das Script gut, gibt es mir doch auch einen praktischen Einblick in die Powershell.

Und zu viel Kosmetik kann es doch eigentlich gar nicht geben face-smile. Dokumentation in einem Script/Programm ist ALLES und je mehr Fehler abgefangen werden, desto besser (v. a. auch für unbedarfte Anwender).

Einen schönen Tag noch
Axel
mirgue
mirgue 05.03.2008 um 10:27:48 Uhr
Goto Top
Hallo kann mir jetzt jemand auf mein Problem weiterhelfen?

Wie kann ich das realisieren? Was muss ich alles machen um alle auf den gleichen stand zu bekommen?
ahe
ahe 05.03.2008, aktualisiert am 18.10.2012 um 18:35:27 Uhr
Goto Top
Hallo mirgue

Schau' 'mal hier nach:
http://www.microsoft.com/downloads/details.aspx?FamilyId=4B4ABA06-B5F9- ...

"Aufgrund der steigenden Nachfrage nach einer effizienten Methode zur Identifizierung bekannter fehlerhafter Sicherheitskonfigurationen hat Microsoft das Tool Microsoft Baseline Security Analyzer (MBSA) entwickelt.
MBSA, Version 2.0.1, beinhaltet eine grafische Oberfläche sowie eine Befehlszeilenschnittstelle, über die lokal oder remote Scans von Windows-Systemen durchgeführt werden können. MBSA kann auf Windows Server 2003-, Windows 2000- und Windows XP-Systemen ausgeführt und für Scans nach bekannten fehlerhaften Sicherheitskonfigurationen für folgende Produkten verwendet werden:
Windows 2000, Windows XP, Windows Server 2003, Internet Information Server (IIS) 5.0 und 6.0, SQL Server 7.0 und 2000, Internet Explorer (IE) 5.01 und höher sowie Office 2000, 2002 und 2003.
MBSA scannt außerdem nach fehlenden Sicherheitsupdates, Updaterollups und Service Packs, die auf Microsoft Update bereitgestellt werden."

Also auf die obige Seite gehen, WGA Prüfung über sich ergehen lassen, downloaden, installieren, starten.

Nach dem Start kann man angeben, ob man nur einen Rechner checken möchte oder mehrere. Wenn mehrere, kann man noch diverse Kriterien angeben, wie IP-Adressbereich und Domänenname. Des Weiteren können Optionen für den Inhalt des Scans angegeben werden.

Ich denke da musst Du einfach einmal ausprobieren, was du dann tatsächlich an Informationen benötigst.

Das Script von TuXHunt3R zeigt wie man ein kleines Inventory-Tool auch selbst scripten kann, ohne ein weiteres Tool von Microsoft oder anderen Herstellern (Shavlik, LANDesk, Altiris, Dell, etc.) installieren zu müssen. (s. a. PowerShell for Runaways - Part I)

Das Scripten ist außerdem weitaus flexibler und du kannst außer den MS Patchen natürlich auch die Versionsstände anderer SW-Pakete auf diese Weise ermitteln und herausbekommen, ob diese gepacht werden müssen.

Hardware und Software Inventarisierung mit KIX

Oder eine Liste der installierten Software mit einem "Biberschen Script":
Tool zum Auflisten Installierter software gesucht!

mfg
Axel