Archive for the ‘WinPE’ Category

Kaputte oder hängende Windows Updates Offline unter WinPE oder WinRE mittels DISM deinstallieren

20 September 2018

Ab und an gibt es Probleme mit Updates von Windows, welche dazu führen, dass mit dem betreffenden Rechner nichts mehr anzufangen ist. Er fährt einfach nicht mehr hoch und die üblichen Mechanismen zur Reparatur funktionieren nicht. Der normale Weg ist dann eine komplette Neuinstallation. Solange man einen Hardwaredefekt ausschließen kann muss dies nicht immer sein. Man muss nur irgendwie Zugriff auf die Festplatte des nicht funktionierenden Systems bekommen. Am einfachsten geht es mittels WinPE oder WinRE.

Nun verwendet man DISM.EXE um mit Images zu arbeiten, allerdings muss man immer mittels Parameter sagen, um welches Images es sich handelt. Images bezieht sich in diesem Zusammenhang auf eine Windowsinstallation. Dazu muss zuerst in Erfahrung gebracht werden, unter welchem Laufwerksbuchstaben das zu betreuende Windows verfügbar ist. Anschließend wird DISM immer mit dem Parameter /image:<LW> aufgerufen, wobei <LW> der Laufwerksbuchstabe des zu bearbeitenden Windows ist.

Zum Auflisten der installierten Updates verwendet man:

DISM /Image:C: /Get-Packages


Paketidentität : Package_for_KB4456655~31bf3856ad364e35~amd64~~17134.281.1.1
Status : Installiert
Versionstyp : Update
Installationszeit : 11.09.2018 20:03

Paketidentität : Package_for_KB4457146~31bf3856ad364e35~amd64~~10.0.1.0
Status : Installiert
Versionstyp : Security Update
Installationszeit : 11.09.2018 20:04

Paketidentität : Package_for_RollupFix~31bf3856ad364e35~amd64~~17134.228.1.6
Status : Abgelöst
Versionstyp : Security Update
Installationszeit : 15.08.2018 22:33

Paketidentität : Package_for_RollupFix~31bf3856ad364e35~amd64~~17134.285.1.7
Status : Installiert
Versionstyp : Security Update
Installationszeit : 15.09.2018 03:07

Der Vorgang wurde erfolgreich beendet.

Hat man nun ein Problem mit einem Update dann deinstalliert man dies, indem man die Paketidentität angibt:

DISM /Image:C: /Remove-Package /PackageName:Package_for_RollupFix~31bf3856ad364e35
~amd64~~17134.285.1.7

Am Ende sollte noch aufgeräumt werden:

DISM /Image:C: /CleanUp-Image /RevertPendingActions

Der Parameter RevertPendingActions kann auch in anderen Situationen angewandt werden: https://blogs.technet.microsoft.com/joscon/2009/10/15/getting-out-of-a-no-boot-situation-after-installing-updates-on-windows-7-2008r2/.

Wenn das Entfernen des letzten Updates nicht hilft, könnte das weitere Entfernen von Updates helfen.

Übrigens kann man obige Befehle auch auf eine laufende Instanz von Windows anwenden indem einfach anstatt /Image:C: /Online angibt.

Werbeanzeigen

Feststellen ob WinPE im UEFI- oder BIOS-Modus gestartet wurde

2 August 2016

Für die Konfiguration von Rechnern ist es wichtig, dass man sich im richtigen Firmwaremodus befindet. Früher war es immer das altgediente BIOS aber seit ein paar Jahren gibt es eben auch UEFI. Um nun unter dem Windows Preinstallation Environment (WinPE) feststellen zu können, in welchem Modus man sich befindet, gibt es einen Registrierungskey den man abfragen kann:

reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType

Man bekommt 0x1 für BIOS und 0x2 für UEFI zurück.

Wenn der Wert nicht ermittelbar ist, sollte man

WPEUtil.EXE UpdateBootInfo

vorab ausführen! Hinweis: Anders als in der Quelle angegeben wird beim Parameter UpdateBootInfo kein Schrägstrich verwendet!

Quelle: https://msdn.microsoft.com/de-de/library/dn293283.aspx.

Hier noch wie man die PE-Version selber abfragen kann: https://newyear2006.wordpress.com/2011/05/17/winpe-version-feststellen/.

Wenn Maus und Tastatur an einem Windows Rechner nicht mehr reagieren

14 Dezember 2014

Ein Kunde hatte ein Problem mit seinem Windows 7 Rechner. Das interessante daran war, dass Tastatur und Maus nicht mehr funktionierten, wenn Windows hochgefahren war. Er hatte die Passworteingabe beim Hochfahren deaktiviert, so dass der Rechner immer bis zum Desktop bootete. So konnte man schon beobachten, dass alles sauber geladen wurde nur am Ende war keinerlei Maus und Tastatureingabe möglich. Der Mauszeiger konnte nicht einmal bewegt werden.

Der Rechner konnte problemlos durch drücken des Ausschaltknopf sauber heruntergefahren werden. Die Maus und Tastatur konnten an anderen Ports eingesteckt werden und es erschien die Meldung, dass Treiber installiert werden und dass das Gerät nun benutzt werden kann. Jedoch war dies nie möglich.

Bei weiteren Versuchen stellte es sich heraus, dass auch eine PS/2-Tastatur nicht funktionierte. Ein generelles Hardwareproblem konnte aber ausgeschlossen werden, da Maus und Tastatur problemlos unter WindowsPE oder im BIOS funktionierten. Ein weiterer Aspekt war, dass Multimediatasten wie E-Mail, Calculator usw. einer Multimediatastatur auch funktionierten.

Ein Starten des Rechners im abgesicherten Modus brachte leider auch nichts.

Also alles neu installieren? Nein.

Zwei Dinge helfen:
Die Verwendung der erweiterten Startoptionen und Aufruf von Computer reparieren. http://windows.microsoft.com/de-de/windows/advanced-startup-options-including-safe-mode#1TC=windows-7. Hier kann man die Systemwiederherstellung aufrufen, damit ein früherer Zustand aktiviert werden kann, der funktionierte – soweit vorhanden.

Die zweite Lösung wäre das entfernen von Kaspersky Maus und Tastaturtreibern. Dazu musste man nur in der Registrierung unter Upperfilters nach klkbdflt und klmouflt suchen und diese entfernen. Detailliert hier beschrieben: http://support.kaspersky.com/general/products/10663#block7. Diese Lösung funktionierte, weil der Kunde davor versucht hatte Kaspersky zu installieren und dabei scheinbar etwas schiefgegangen war. Hat man die Kaspersky-Treiber entfernt, stehen nur noch kbdclass und mouclass in der Registrierung. Übrigens muss man nicht zwingend die Kaspersky Rescue Disk verwenden, sondern kann auch mit einem WinPE oder Windows Bootmedium booten und die Registrierungseinträge darüber ändern.

Festplatten löschen (wipen) mit Windows Bordmitteln

23 Oktober 2014

Unglaublich was man manchmal für Entdeckungen macht und sich wundert, warum man davon noch nie gehört hat. Per Zufall bin ich heute über Cipher.EXE gestolpert. Hatte ich zuvor noch nie gehört. Wenn man die Hilfe von Cipher.EXE anschaut, dann wird schnell klar, dass es für die Verschlüsselung von Dateien und Verzeichnissen zuständig ist.

Aber dann taucht da auch der Parameter /W für Wipe auf:

    /W       

Entfernt Daten aus verfügbarem, nicht verwendetem Speicherplatz auf dem Volume. Alle anderen Optionen werden ignoriert, wenn diese Option ausgewählt wird. Das angegebene Verzeichnis kann sich an einer beliebigen Position auf dem lokalen Volume befinden. Wenn es sich um einen Bereitstellungspunkt oder einen Verweis auf ein Verzeichnis auf einem anderen Volume handelt, werden die Daten auf diesem Volume entfernt.

Es agiert also nicht wie Sdelete von Sysinternals und überschreibt bestehende Dateien, sondern überschreibt den freien Speicherbereich eines Volume.

Wenn man nun eine Festplatte mittels DISKPART Befehl CLEAN löscht, dann eine Partition darauf einrichtet, dann kann man mittels CIPHER /W die Festplatte komplett löschen.

Spannend wird die Sache in Verbindung mit WinPE. Schade das WinPE, WinRE und die Windows-Bootmedien keine direkte Unterstützung für CIPHER.EXE haben. Aber oft hat man ja sowieso irgendwo ein Windows bzw. auf der zu löschenden Platte ein vorhandenes Windows.

Man muss also einfach nur CIPHER.EXE von der lokalen Windows-Installation kopieren. Dabei ist allerdings zu beachten, ob die WinPE-Umgebung 32-Bit oder 64-Bit unterstützt. Je nachdem verwendet man dann C:\Windows\System32\cipher.exe oder C:\Windows\SysWOW64\cipher.exe. Wenn die Cipher.EXE von dem Laufwerk kommt, welches gelöscht werden soll, kopiert man es auf das RAM-Laufwerk X: und startet es von dort aus.

Ach noch was: Man könnte auch den CLEAN Befehl mit dem Parameter ALL bei DISKPART verwenden, dann würde auch alles mit 0x00 überschrieben. Warum sollte man dann CIPHER.EXE verwenden? CIPHER.EXE geht beim Überschreiben anders vor, es überschreibt in drei Durchgängen. Zuerst wird alles mit 0x00 dann mit 0xFF und am Schluss mit Zufallswerten überschrieben. Dies ist auch der Grund, warum CIPHER.EXE nachgesagt wird, es wäre langsam.

http://blogs.technet.com/b/chad/archive/2012/08/16/tip-53-wipe-your-hard-drive-without-any-extra-programs.aspx

Und noch was: Bei SSDs gibt es nicht die sichere Möglichkeit wirklich alles zu löschen. In diesem Fall sollte man schauen, ob die betreffende SSD eine interne AES-Verschlüsselung bietet und ob man dort den zugehörigen Key löschen kann.

GHOST32.EXE-Ersatz mittels Windows 8 bzw. WinPE 4 oder wie erstelle ich ein Festplattenimage mit Windows Bordmitteln?

2 Juli 2012

Wer Symantecs Ghost32.EXE aus der Enterprise Edition einsetzt, der weiß wie einfach es sein kann, Festplattenimages zu erstellen bzw. eine alte Platte durch eine neue Platte zu ersetzen.

Schon lange bin ich auf der Suche nach einer Ersatzlösung für Ghost32.exe z. B. https://newyear2006.wordpress.com/2010/11/21/ghost-enterprise-ersatz/ oder https://newyear2006.wordpress.com/2007/02/09/festplatten-clonen-mit-windows-vista-dvd-und-robocopy/ aber es war nichts so einfach wie Ghost32.EXE. Ein Problem das massiver wird, ist, dass GHOST32.EXE eben ein 32Bit Programm ist. Da aber alle neuen Windows Versionen in der Regel 64Bit sind und 32Bit WinPE-Umgebungen über kurz oder lang aussterben. Dies bedeutet, dass die alte Ghost32.EXE dort nicht mehr gestartet werden kann.

Nun gibt es wohl schon einige Zeit eine neue Version von Ghost, die auch 64Bit-fähig ist, aber warum soll man sich damit herumschlagen, zumal es nur Bestandteil einer größeren Suite ist, wenn das Betriebssystem die Sache selber mitbringt.

Eine weitere Altnative war noch die ImageX-Lösung um WIM-Dateien zu erstellen aber alles irgendwie nicht so aus einem Guss. ImageX war nicht von Haus aus enthalten.

Aber MS hat ein Einsehen gehabt und bringt nun alles nötige von Haus aus mit. Quasi wurde ImageX in DISM integriert. DISM.EXE kennt nun die Befehlszeilenoptionen /APPLY-IMAGE und /CAPTURE-IMAGE und ist auf jeder Windows 8 bzw. Server 2012 DVD enthalten!

Mittels

DISM.EXE  /Capture-Image  /ImageFile:Backup.wim  /CaptureDir:C:\  /Name:Backup

erhält man die Datei Backup.WIM mit dem kompletten Inhalt von C:\.

http://technet.microsoft.com/en-us/library/hh825041

Was die Sache so interessant macht ist, dass man mehrere Sicherungen in eine WIM-Datei packen kann und dabei mehrfach vorkommende Dateien nur einmal hinterlegt werden. Siehe Parameter /APPEND-IMAGE http://technet.microsoft.com/en-us/library/hh825258.

Was leider komplett fehlt ist der Punkt eine 1:1 Kopie zu erstellen, wo Sektor für Sektor kopiert wird. Aber für Forensiker bleibt ja noch das alte GHOST32 oder eben DD der Linuxler.

Die Sachen sind übrigens wichtig, um die von Windows 8 angepriesenen Funktionen wie “Refresh your PC” bzw. “Reset your PC” zu unterstützen. Beides läuft auch unter dem Punkt “Push-button reset”. http://technet.microsoft.com/en-us/library/hh824917

Ob alles reibungslos funktioniert, wird die Zeit zeigen…

WinPE mit Powershell das ultimative Gespann

13 März 2012

Mit Windows 8 kommt der Knaller für WinPE und Powershell. Seither war die Kombination WinPE (Windows Preinstallation Environment) mit Powershell nur über spezielle Modifikationen möglich, wie z. B. hier beschrieben: http://chentiangemalc.wordpress.com/2011/01/24/how-to-net-powershell-in-windows-pe-2/.

Aber Microsoft hatte ein Einsehen mit den geplagten Admins und Powerusern dieser Welt und machte eine offizielle Unterstützung von Powershell auf WinPE möglich. Aber nicht irgendein Powershell, nein gleich Powershell 3.0 mit Net-Framework 4 und den nötigen Storage Cmdlets!! Perfekt, davon hat man jahrelang geträumt.

Wie wird’s gemacht? Man benötigt das “Windows Assessment and Deployment Kit (ADK)” für Windows 8. Darin enthalten sind die nötigen Komponenten.
Download: http://www.microsoft.com/download/en/details.aspx?id=28997
Installationsbeschreibung: http://msdn.microsoft.com/en-us/library/windows/desktop/hh825494.aspx#InstallingNonNetworked

Eine Dokumentation, wie man dann vorgeht steht hier: http://technet.microsoft.com/en-us/library/hh825110.aspx

Dabei braucht man folgende optionalen Komponenten:

WinPE-WMI
WinPE-NetFX4
WinPE-Scripting
WinPE-PowerShell3
WinPE-DismCmdlets
WinPE-StorageWMI

Eine Beschreibung der Komponenten gibt es hier: http://technet.microsoft.com/en-us/library/hh824926.aspx#bkmk_3

In genau dieser Reihenfolge sollten diese an DISM.EXE beim Parameter /add-package angeliefert werden. Unverständlich ist nur, dass bei den ganzen Dokus noch alles mit DISM.EXE angegeben ist, wo es doch Powershell 3.0 mit DISM-Cmdlets gibt?!? Smiley

Wurde alles sauber gemacht erhält man ein Windows PE 4.0 mit .Net Framework 4.0 und Powershell 3.0 mit WMI Unterstützung!

Achso, hab ich schon betont wie genial ich das finde? Ok, ich wiederhole mich aber ich bin halt begeistert.

Nur ein paar Vorteile:

  • Es löst DISKPART.EXE ab, welches häufiger in diesem Blog zu finden ist, vor allem lassen sich nun Plattenputz- oder Einrichtaktionen schön scripten.
  • Es erlaubt Offline-Registry Zugriffe um zum Beispiel bei P2V bestimmte Treiber ausfindig zu machen und umzubeamen.
  • Man bekommt Zugriff auf VHD- und ISO-Dateien bzw. deren Inhalt und kann so leichter auf nötige Treiber oder Installationsdateien zurückgreifen.
  • Bei erkannter Netzwerkkarte bekommt man mittels Invoke-RestMethod Zugriff auf RSS-Feeds.
  • Im Grunde sind die Möglichkeiten nun unbegrenzt.

WinPE Version feststellen

17 Mai 2011

Wenn man eine WinPE Version (auch Windows Installations CDs) vor sich hat, stellt sich schnell die Frage auf welcher WinPE Basis diese Version erstellt wurde. Ein schneller und eindeutiger Indikator ist die Versionsnummer. Aber wo steht die? Ganz einfach in der Registrierung.

Wenn man also bei einer PE-Version mittels

REG QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinPE"

abfragt, wird die Version mitausgegeben. Oder noch genauer:

REG QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinPE" /v Version

Alternativ kann man natürlich auch mit regedit nachschauen.