Anzeige

Am Puls von Microsoft

Anzeige

Tuning Updateverlauf per Skript auslesen (Test)

edv.kleini

Win11 Registry-Fummler
Ich lege hier mal ein kleines Powershell-Script gezippt rein.
Dieses Powershell-Script funktioniert aber nur unter Windows 11 komplett und ohne Fehlermeldungen,
da Windows 10 den Registry-Pfad:
HKLM\SYSTEM\Software\Microsoft\BuildLayers\DesktopEditions mit dem Wert von BuildArch nicht hat.
Es fragt u. A. ab welche Updates installert sind.
 

Anhänge

  • Check_for_Updates.zip
    857 Bytes · Aufrufe: 57
Anzeige
Hi Thorsten

Zeigt das Script Dir irgendwas in roter Schrift an

Es geht um den Eintrag im Script:

$variable1 = (Get-ItemProperty -Path 'HKLM:\SYSTEM\Setup\MoSetup\Volatile').DownlevelProductName

(Wenn Du ´nen Doppelklick auf das Script machst geht es mit dem Editor auf)

Wenn der Pfad nämlich in der Registry fehlt, macht das Script Probleme!

Ich habe daher das Script so verändert, dass es normalerweise jetzt auf

Windows 10, 11 und Server 2022 laufen sollte... Getestet bei mir unter allen diesen drei Windows Varianten!

Siehe Anhang:
 

Anhänge

  • Check_for_Updates.zip
    749 Bytes · Aufrufe: 63
Zuletzt bearbeitet:
Bisschen wenig was ich dort sehe

EFEBwBoms2.png
 
Dann schaut mal genau in das Script rein, dann seht ihr wie es die Updates abfragt.
Nämlich nur über den Befehl get-hotfix. Nicht mehr und nicht wengier.
Des Weiteren wurde nur über die Buildnummer bestimmt, welches OS installiert ist.
Sicherlich gibt es noch andere Möglichkeiten das alles abzufragen.
Z.B. Über den wmic Befehl, aber wmic gilt als veraltet und ist aus Windows 11 IP-Versionen verbannt worden.

DOS-Fenster mit administrativen Rechten aufmachen:

wmic qfe list eintippen und Enter drücken. Zeigt auch die KB´s an...
Wenn aber dann auch längst nicht alle!
Ach und noch etwas:
Wird der Windows Update Dienst deaktiviert bzw. per Registry ausgeschaltet, dann
funktioniert die Standardabfrage der installierten Updates unter den Einstellungen auch nicht mehr!
 
Zuletzt bearbeitet:
Mach mal ein DOS-Fenster mit administrativen Rechten auf und tippe an der
Eingabeaufforderung powershell ein.
Dann tippst Du in Powershell get-hotfix ein.
Resultat bei mir:
1639837159832.png


Niemand hat behauptet das Script sei perfekt und könne alles.
Okay es sind deshalb so wenig weil Clean Install!





Windows PowerShell Integrated Scripting Environment (ISE) ist eine Hostanwendung für Windows PowerShell. Sie können mit ISE in einer Windows-basierten grafischen Benutzeroberfläche Befehle ausführen und Skripts schreiben, testen und debuggen.
 
Zuletzt bearbeitet:
Ja der zeigt wohl nur die für ihn wichtigen an oder was?

Jetzt wird es aberwitzig.
Selber PC wie in Beitrag 9 zu sehen.
Mit eingeschaltetem Update Dienst! Aber Clean-Install.
Unter den Einstellungen ist Folgendes zu sehen:
1639837726607.png


Wie geil ist das denn

Microsoft issich wohl selbst uneins!!!!

Über das Powershell-Script zeigt er mir die 5 KB Updates an?!??
Über Einstellungen und Update-Verlauf nicht?!?!? Häääääh?
Tolle Wurst!
;)
 
Zuletzt bearbeitet:
Jepp... wie immer bei mir mit NTLite und Offline Clean Install!
Daran könnte es natürlich auch liegen!

Dann brauche ich mich auch nicht wundern! Hihi

Man sieht... es hat alles seine Vor und Nachteile!
What shalls? bzw. in dem Fall What Powershells?... muuuuuuuhhhhhhaaaaa.

What shalls? Was soll´s... What Powershells? Welche Leistungsmuscheln?

Sehr gute Übersetzung!
 
Zuletzt bearbeitet:
Ist auch merkwürdig bei Dir @Jürgen unter Windows 11.
In Powershell nur 5 Updates... Unter den Einstellungen sind es 10!
Aberwitzig!
Der zeigt wahrscheinlich nur die letzten hohen an im Powershell-Fenster!
So sieht es zumindest aus!

Gezeigt werden dort nur hohe 7erxxx und 8erxxxx. Die 5005er und 5006er nicht mehr...
 
@Jürgen

Kanste mal das in Powershell ausführen ?

Habe ich gerade genau so bei Microsoft gefunden:

$Session = New-Object -ComObject "Microsoft.Update.Session"
$Searcher = $Session.CreateUpdateSearcher()

$historyCount = $Searcher.GetTotalHistoryCount()

$Searcher.QueryHistory(0, $historyCount) | Select-Object Title, Description, Date

@{name="Operation"; expression={switch($_.operation){

1 {"Installation"}; 2 {"Uninstallation"}; 3 {"Other"}

}}}

pause


Einfach kopieren und in Powershell gesamt ausführen

Bei mir Fehler in Zeile 6
 
Zuletzt bearbeitet von einem Moderator:
Jepp... hinter date darf kein Komma mehr sein.

Aber Des Weiteren hier ein etwas anderer Lösungsansatz:

echo "
Hier werden Ihnen nur die zuletzt installierten Windows Updates angezeigt.
Darunter fallen jedoch nicht Treiber, Office oder unter WSUS empfangene Updates.
WSUS steht für Windows Server Update Services. Die Server sind von Microsoft.

HotFixID Beschreibung
-------- ------------"
Get-hotfix | Select-Object -Property HotFixID, Description | Format-Table
$variable2 = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').CurrentBuild
$variable3 = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').ubr
# if ($variable2 -gt "21999") {
$variable1 = (Get-WmiObject -class Win32_OperatingSystem).Caption
$Folder = $env:windir+'\'+'Syswow64'
if (Test-Path -Path $Folder) {
$Variable4 ="64 Bit"
} else {
$Variable4 ="32 Bit"
}
write-host "Auf Ihrem Computer ist" $variable1 "als" $variable4 "Betriebssystem installiert." -NoNewLine
echo " "
echo " "
write-host "Die aktuelle Windows Buildnummer lautet:" $variable2"."$variable3"." -NoNewLine
echo " "
echo " "
echo "Drücken Sie eine beliebige Taste um dieses Powershell-Script zu beenden."
[void]($Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown'))

exit

Microsoft selbst schreibt dazu nämlich auch das Gleiche

Darunter fallen jedoch nicht Treiber, Office oder unter WSUS empfangene Updates.

PS.:
tschulligung für meine verspätete Antwort ... Ich war Powershells essen! Scheeeerz
 
$Session = New-Object -ComObject "Microsoft.Update.Session"
$Searcher = $Session.CreateUpdateSearcher()

$historyCount = $Searcher.GetTotalHistoryCount()

$Searcher.QueryHistory(0, $historyCount)

@{name="Operation"; expression={switch($_.operation){

1 {"Installation"}; 2 {"Uninstallation"}; 3 {"Other"}

}}}

pause

Wie aus Beitrag #15 zu sehen geht es so, aber Powershell zeigt dann alles mögliche an...
 
ohne Komma aus #15 sieht in Win 11 jetzt so aus, bei Win 10 brauche ich hier wesentlich mehr Platz , das wären dann mehrere Seiten hier
5NhyDP8PJa.png
 
Zuletzt bearbeitet:
Aus #18 brauche ich noch mehr Platz , da rattern alle Beschreibungen durch , das hier entspricht ca 5% der Datenmenge


S6EjiRyuIw.png
 
Anzeige
Oben