Windows Updates suchen ewig

Wenn Windows 7 für eine Weile keine neuen Windows Updates bekommen hat und diese später nachholen soll, kann es sein, dass sich das System zu Tode lädt. Es wird ewig gesucht und nichts gefunden. Vielleicht waren die Windows Updates längere Zeit deaktiviert oder es handelt sich um ein älteres Image.
Windows 7 verwendet eine Technologie zum Erkennen von installierten und noch benötigten Updates, welche über die Jahre mehr und mehr überfordert ist mit der Menge an Informationen. Hier braucht Windows 7 Unterstützung durch 2 Patches und im Notfall weiteren Fixes, damit die Updates wieder schnell gefunden und installiert werden.

Update: Neuer Fix von Winfuture

Winfuture hat für genau dieses Fehlverhalten mittlerweile einen eigenen Fix veröffentlicht, welcher ein Set aus 5 Updates installiert, unter anderem auch die unten erwähnten. Vor der Installation dieses Pakets muss der Windows Update Dienst beendet (net stop wuauserv) oder Windows Updates deaktiviert werden.
Link zum Winfuture Windows 7 Update Fix

Fix

Hauptsächlich helfen die Updates 3020369 und 3172605 in diesem Fall. Sollten die Updates nicht einfach per Doppelklick installiert werden können, probiert vorher den Windows Update Dienst zu beenden, hier die CMD Befehle:

net stop wuauserv
:: KB3020369 installieren
:: Neustart
net stop wuauserv
:: KB3172605 installieren
:: Neustart

Damit sollten die Updates wieder laufen. Ich verwende diese Methode bereits seit Langem auf Arbeit um alte Windows 7 Systeme wieder schnell an das Windows Update anzubinden.

Problem nicht gelöst?

Falls es Probleme gibt, ist eventuell Windows Update an sich beschädigt. Möglicherweise hilft das Update KB3102810, die Neuinstallation des Windows Update Agents (unter „Manuelles Herunterladen des Windows Update-Agents“, Version 7.6 für Windows 7) oder das pcw-Fix Windows Update.
Weitere Windows Update Fehler habe ich hier im Blog – die Suchfunktion hilft.

via

Ich habe heute ein Script zusammengebastelt, welches den Windows 7 und den Office 2007 Lizenz-Key des Computers ausliest und ihn in eine Textdatei speichert. Die Textdatei entspricht dem Computernamen zur einfachen Zuordnung von PC und Key. Das Script läuft komplett selbstständig, kann also z.B per Gruppenrichtlinie automatisch ausgeführt werden.
Code-Grundlage ist dieser Forum Post.

Ich habe den Code bereinigt, gekürzt und um die Erkennung von Office 2007 erweitert. Das Script erkennt außerdem, ob das System mit 32bit oder 64bit läuft und passt die Erkennung dementsprechend an.

Hier der verbesserte Code:

On Error Resume Next
Dim WshNetwork
Set WshNetwork = CreateObject("WScript.Network")
cName = WshNetwork.ComputerName
Set WshShell = CreateObject("WScript.Shell")
' detect processor architecture, returns 32 or 64
pa = GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").AddressWidth
' get current path
set fso = CreateObject("Scripting.FileSystemObject")
logpath = fso.BuildPath(fso.GetAbsolutePathName("."), "Keys.txt")
'logpath = "\\server\path\to\log.txt" 'for servers

' ----------- Windows 7 Key -----------
wkey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
wdigitalId = WshShell.RegRead(wkey & "DigitalProductId")
wProductName = "Product Name : " & WshShell.RegRead(wkey & "ProductName") & vbNewLine 
wProductId   = "Product Id   : " & WshShell.RegRead(wkey & "ProductId") & vbNewLine 
wProductKey  = "Install Key  : " & Converted(wdigitalId)

windowsData = wProductName & wProductId & wProductKey
' ----------- Windows 7 END -----------

' ----------- Office 2007 Key -----------
'32bit or 64bit?
If pa = "32" Then
	okey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\ Registration\{90120000-0011-0000-0000-0000000FF1CE}\DigitalProductID\"
Else
	okey = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Registration\{91120000-00CA-0000-0000-0000000FF1CE}\"
End if

odigitalId = WshShell.RegRead(okey & "DigitalProductID")    
If (IsEmpty(odigitalId)) Then 
    officeData = "Office 2007 not found"
Else
    oProductKey  = "Install Key  : " & Converted(odigitalId)
    oProductName = "Product Name : " & WshShell.RegRead(okey & "ProductName") & vbNewLine 
    oProductId   = "Product Id   : " & WshShell.RegRead(okey & "ProductId") & vbNewLine 
    officeData = oProductName & oProductId & oProductKey
End If

' ----------- Office 2007 END -----------

Save()

Function Converted(id)
    Const OFFSET = 52
    i = 28
    Chars = "BCDFGHJKMPQRTVWXY2346789"
    Do
        Cur = 0
        x = 14
        Do
            Cur = Cur * 256
            Cur = id(x + OFFSET) + Cur
            id(x + OFFSET) = (Cur \ 24) And 255
            Cur = Cur Mod 24
            x = x -1
        Loop While x >= 0
        i = i - 1
        Converted = Mid(Chars, Cur + 1, 1) & Converted
        If (((29 - i) Mod 6) = 0) And (i <> -1) Then
            i = i -1
            Converted = "-" & Converted
        End If
    Loop While i >= 0
End Function

Function Save()
  WScript.Echo "Save to: " & logpath
  Set file = CreateObject("Scripting.FileSystemObject").CreateTextFile(logpath,2,0)
  file.Writeline(FormatDateTime(Date, vbLongDate) & vbNewLine)
  file.Writeline(windowsData & vbNewLine) 'Windows 7
  file.Writeline(officeData & vbNewLine) 'Office 2007
  file.close
End Function

Ergebnis:
windows-7-office-2007-key-reading-decrypting-script

Den Logpath in Zeile 7 müsst ihr anpassen. Ihr könnt diese Zeile auch komplett entfernen und die Zeile 61 anpassen („logpath &“ entfernen), dann wird die Logdatei immer im selben Ordner mit der .vbs erstellt. Dann ist das Script allerdings nicht mehr GPO tauglich. Für GPO Verteilung via Computer-Startscript müsst ihr den Pfad im Script explizit angeben.

Hinweis: Die Erkennung des Windows Keys funktioniert bei der Enterprise Version voraussichtlich nicht. Bei Windows Server 2008 R2 (Standard) funktioniert es.
Es ist etwas erschreckend wie schlecht die Keys geschützt waren. Ich weiß nicht, ob sich diese Methode auch für andere Versionen von Windows oder Office verwenden ließe. Vielleicht ist hier ein ITler mit WinXP, Office 2k3 o.Ä. und schaut mal in der Registry nach.

Ich hatte in letzter Zeit öfter mit der Installation von Windows 7 auf älteren Computern zu tun. Damit meine ich Computer mit 1,6GHz Single Core, 1GB RAM, onboard Grafik und einer 40GB Festplatte.
Hier zusammengefasst ein paar Tipps & Tricks, die bei der Installation und Optimierung eines Windows 7 auf solchen Uralt-PCs helfen.

Wie viel Platz braucht Windows 7?
Je nach Version (Starter, Home, Pro, Enterprise) und je nach Architektur (32, 64) benötigt eine blanke Installation von Windows zwischen 4GB und 9GB Speicherplatz. Hinzu kommen die 2 Daten für die Auslagerung und den Ruhestand (pagefile und hyberfil), für gewöhnlich jeweils so groß wie der eingebaute RAM. Also ein frisch installiertes Windows 7 Home Premium 32bit mit 1,5GB RAM verbraucht etwa 7-8GB (4-5GB + 1,5GB + 1,5GB). Nun kommen noch große Datenmengen an Treibern, Windows Updates und temporären Daten hinzu. Dieses frisch installierte Windows 7 wächst von seinen 7-8GB auf 13GB allein nur durch die Installation aller Windows Updates und Service Pack 1 (Stand Feb 2013). Dazu kommen jetzt noch Treiber und Standardprogramme wie DirectX, Flash, Java, etliche Frameworks usw, die zum Betrieb aktueller Software oder Internetseiten gebraucht werden; 14-15GB für ein ausgestattetes System kann man also einplanen. Deswegen spricht Microsoft von einer Mindestanforderung von 16GB diese sind mindestens zu empfehlen. 20GB oder besser 30GB sollte die Partition fassen, wenn das System zukunftstauglich eingerichtet werden soll. Denn es folgen sicher weitere Updates, die Computerbenutzung schafft schnell neue Datenmengen, das Entpacken von Archiven benötigt ebenfalls temporären Platz auf der Systempartition.


Sollte ich alle Updates installieren?
Je nach Festplattenplatz und Nutzung des Computers empfiehlt es sich, die Windows Updates zumindest einmalig vollständig zu installieren. Updates sollen in erster Linie ja die Sicherheit und Stabilität verbessern. Aber auch wenn der Computer nicht in’s Internet gehen soll, also Sicherheit nicht so relevant ist, gibt es viele Updates die bestimmte Funktionen von Windows nachrüsten (z.B. die Erkennung von SD Karten mit mehr als 32GB) oder Voraussetzungen installieren (.NET Framework), die für den täglichen Gebrauch nützlich oder erforderlich sind.
Das Deaktivieren der Windows Updates verschafft dem PC etwas mehr Ruhe und entlastet das Netzwerk, ist aber grundsätzlich nicht zu empfehlen, da die Sicherheit des Computers stark beeinträchtigt wird.
Wenn der freie Platz der Partition zu klein wird, empfiehlt es sich die Sicherungsdateien der Updates zu löschen. Startet die „Datenträgerbereinigung“ des Systemlaufwerks und lasst die „Service Pack Sicherungsdateien“ aufräumen.


Performance-Tuning im „Leistungsinformationen- und tools“ (einfach in der Startmenü Suche eingeben):

Visuelle Effekte optimieren -> Für optimale Leistung anpassen: deaktiviert alle grafischen Spielereien, die vor allem Computer mit alter CPU und onboard Grafik in die Kniehe zwingen. Einzelne Effekte können auf Wunsch aktiviert werden, wenn man darauf Wert setzt. Zum Beispiel empfinden viele Menschen es als besonders anstrengend den Effekt „Kanten der Bildschirmschriftarten verfeinern“ zu deaktivieren. Wer nicht den kompletten Uralt Style erträgt kann auch „Visuelle Stile für Fenster und Schaltflächen“ wieder aktivieren.

Indizierungsoptionen anpassen -> Der Indizierungsdienst verbessert die Windows Suche durch das ständige Durchsuchen von Daten. Das kostet dauerhaft Leistung und hilft eher selten. Ich deaktiviere diesen Dienst auf den meisten PCs.
Entweder über „Dienste“ -> „Windows Search“ -> Beenden & Starttyp auf Deaktiviert stellen oder über die CMD mit den 2 Befehlen:

net stop wssearch
sc config wsearch start= disabled

Datenträgerbereinigung öffnen -> Wenn der PC normal läuft und auch noch einigen Neustarts wie gewünscht funktioniert kann man in der Datenträgerbereinigung einige überflüssige Daten loswerden. Am größten wird der Posten „Service Pack Sicherungsdateien“ sein, aber auch die „Temporary Internet Files“ und die Einträge der Fehlerberichterstattung können noch einige Megabyte enthalten. Lasst diese Punkt von Windows mal bereinigen. Alternativ ist auch der CCleaner ein super Tool zum Aufräumen.
Unter Windows XP gibt es im Ordner C:\Windows die berühmten $NtUninstall und $NtServicePackUninstall Ordner. Auch die können Weg um Speicher freizugeben, wenn alles läuft.


Dienste deaktivieren:
Dies ist immer ein kritischer Part, hier muss jeder selber entscheiden wie wichtig die Stabilität des Systems gegenüber dem Performancegewinn ist.

Hier eine Liste der Windows Dienste, die man (zumindest laut dem Autor des verlinkten Artikels) deaktivieren könnte: LINK.
Und noch eine Liste aller Dienste mit ihren Funktionen, empfohlenen Einstellungen und möglichen Nachteilen: LINK.

Allgemein kann man im „Dienste“ Dialog von Windows jeden Dienst erst Beenden (falls er läuft) und dann den Starttyp auf Manuell oder deaktiviert setzen.
Ich habe kaum einen Dienst deaktiviert (Windows Search, Design), kann hier also nicht viele Tipps geben. An dieser Stelle werde ich mich aber nochmal belesen und sicher ein paar Dienste wie Windows Error Reporting Service oder Windows Media Center Service Launcher nochmal überdenken. Denn außerhalb der Arbeit benötige ich viele Funktionen wirklich nicht.


Systemstart überprüfen:
Eine gute alte Möglichkeit die Leistung und vor allem den Systemstart zu erhöhen ist das Aufräumen der Autostart-Programme. Diese Programme werden automatisch mit Windows gestartet und bleiben meistens dauerhaft aktiv.

Das Tool „msconfig“ enthält den Tab „Systemstart“ und listet dort alle Programme auf, die mit Windows gestartet werden können. Alle gesetzten Haken zeigen aktive Autostarts an und sollten überprüft werden. Hier erfordert es ein wenig IT Hintergrund wissen, überflüssige Programme auszusortieren. Die Startup Application Knowledge Base verrät zur Not Informationen zu bekannteren Programmen.


Unbenötigte Windows Funktionen deaktivieren:
Viele Funktionen sind standardmäßig aktiviert, bleiben aber unbenutzt. Diese Liste der Funktionen findet ihr über die Startmenü Suche via „Windows-Funktionen aktivieren oder deaktivieren“, auch ein Menüpunkt in „Programme und Funktionen“.

Schaut die aktivierten Listenpunkte durch und deaktiviert auf Wunsch die Punkte. Ein Tooltip (bei Mouseover) verrät oftmals ausreichend, wofür die Funktion zuständig ist.
Ich habe Funktionen wie „Internetdruckclient“, „Windows DVD Maker“, „Windows Media Center“, „Plattform zu Windows-Minianwendungen“, „Remoteunterschiedskomprimierung“ und „Tablet-PC-Komponenten“ deaktiviert.

Update: Achtung! An dieser Stelle nicht „Windows Search“ deaktivieren, dann verschwindet die Suchleiste im Startmenü. Windows Search nur unter „Dienste“ deaktivieren.


Kleinkram:

Protokollierung deaktivieren: in der Registry unter HKEY_LOCAL_MACHINE\Software\Microsoft\WBEM\CIMOM die Einträge „EnableEvents“ und „Logging“ auf 0 setzen.

Werbeblocker: Werbung im Internet ist nicht nur anstrengend und nervig, sie verlangsamt auch den Aufbau einer Internetseite. Installiert Werbeblocker wie Adblock Plus in eurem Browser!

Registry Fehler suchen: CCleaner, RegCleaner und viele andere Programme suchen in der Registry nach fehlerhaften Einträgen und bereinigen diese. Das kann die Performance ebenfalls leicht verbessern.

Unnötige Programme deinstallieren: Programme und FUnktionen aufrufen und unnötige Programme deinstallieren, logisch.


Tuning Tools:
Das alles ist viel Arbeit und Fummelei, einige wenige kostenlose Tools übernehmen viele dieser Tuning Tipps. Für das Windows Tweaking ist aber 1 Freeware besonders gut geeignet und sehr zu empfehlen: Ultimate Windows Tweaker. Die kleine .exe Datei ist sehr mächtig, über 150 Tweaks können angewendet werden, sollte aber mit Vorsicht benutzt werden.


via, via, via, via, via

Problem: Nach der Anmeldung wird kein Benutzerprofilordner angelegt, statt dessen bewegt man sich in C:\Users\Public oder C:\Users\TEMP während man eingeloggt ist. Nach dem Logout werden diese temporären Daten gelöscht. Dadurch werden z.B. nie benutzerspezifische Einstellungen gespeichert.

Lösung: Ab in die Registry:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\[S-ID]
Durchsucht alle SIDs und schaut jeweils auf den „ProfileImagePath“. Löscht alle Schlüssel des Benutzernamens, der Probleme macht.

Dann, neustarten! (wichtig!)

Danach müsste der Login normal funktionieren und ein Profilordner erstellt worden sein.

Memo an mich, Nutzer automatisch beim Start einloggen:

Via GUI

netplwiz

oder

control userpasswords2

starten.
Dann den Haken bei „Benutzer muss Benutzername und Passwort eingeben um den Computer benutzen zu können“ entfernen, Übernehmen, Passwort eingeben.

Funktioniert nicht bei Domänencomputern. Daher diese Alternative.
Via Registry

HKLM\Software\Microsoft\Windows NT\CurrentVersion\winlogon

:
AutoAdminLogon = 1
DefaultUserName = testuser
DefaultDomainName = DOMAIN (optional natürlich)
DefaultPassword = g3h3!m
(alles Strings, die letzten 2 müssen selber erstellt werden)

Bei Windows 8 funktioniert das ebenfalls, gleicher Registry Key/Pfad, gleicher netplwiz Wizard, gleiches Verfahren.

Erledigt!

Das Windows 7 Mobilitätscenter ist eine echt gute Neuerung, die eigentlich für mobile Computer gedacht ist. Hier werden wichtige Windows Funktionen in einem PopUp gebündelt. Dieser schnelle Zugriff ist aber auch für Desktop PCs sinnvoll.
An einem Desktop PC bekommt man allerdings den Fehler „Windows-Mobilitätscenter ist nur auf Laptops verfügbar“. Aktivieren? Gerne!

Dank des kurzen Beitrags im Winside Blog ist das Mobilitätscenter schnell aktiviert und kann mit

mblctr

gestartet werden (da es im Startmenü nicht angezeigt wird).

Ich habe die nötigen Registry Änderungen mal in eine .reg Datei gepackt:
Download section
mblctr [.reg]
Rechtsklick -> Speichern unter…

Für die Änderungen sind keine Admin-Rechte erforderlich, einfach per Doppelklick ausführen und die Meldungen bestätigen.

Und nochmal schnell schriftlich:
Unter

HKEY_CURRENT_USER\Software\Microsoft\

einen neuen Schlüssel „MobilePC“ anlegen.
2 weitere Unterschlüssel in MobilePC anlegen: „AdaptableSettings“ und „MobilityCenter“. In „MobilityCenter“ kommt ein 32bit DWORD „RunOnDesktop“ mit dem Wert 1 und bei „AdaptableSettings“ kommt ein 32bit DWORD „SkipBatteryCheck“ ebenfalls mit dem Wert 1. Letzterer aktiviert das Mobility Center auf einigen problematischen Laptops, der RunOnDesktop ist selbstsprechend.

Gleich im Anschluss, ohne Neustart, ist das Mobilitätscenter aktiv.

Wir sind mittlerweile richtig verwöhnt. Millionen Pixel bilden unser Monitorbild, Millionen Farben machen es ansehnlich.
Wie wärs wohl, wenn Windows 7 wie damals nur 256 Farben zur Verfügung hätte. Hat sich das jemand mal angeguckt?

Hier 😀

Ich muss sagen, Office 2007 versucht noch einigermaßen brauchbar auszusehen. Aber ein Traum ist das wohl eher nicht. Vor allem selektierte Buttons sind gemein, Türkis-Netzhaut-Peitsche deluxe.
Es sei also nochmal gesagt: ich liebe den heutigen Stand der Technik 😀