Archive for the ‘WinRE’ 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.

Wiederherstellungsumgebung WinRE.WIM aus Windows ISO-Datei extrahieren

2 Juli 2017

Für bestimmte Zwecke benötigt man die WinRE.WIM-Datei. WinRE ist die Wiederherstellungsumgebung für Windows. WinRE gibt es quasi seit Windows Vista und wurde Version um Version weiter ausgebaut. WinRE.WIM findet vor allem bei aktuellen Windows 10 und Windows Server 2016 Systemen Anwendung.

Um WinRE.WIM zu erhalten gibt es verschiedene Wege. Der einfachste ist auf einem bestehenden System die versteckte Wiederherstellungspartition mit einem Laufwerksbuchstaben zu versehen und dann unter X:\Recovery\WindowsRE mittels

attrib –s –h winre.wim

die WinRE.WIM-Datei sichtbar zu machen. Danach kann man sie wegkopieren.

Allerdings kann es Fälle geben, da möchte man sicher sein, dass die WinRE.WIM-Datei vom Original stammt. In diesem Fall kann man die WinRE.WIM-Datei aus bestehenden ISO-Dateien herauskopieren. Allerdings ist dieser Weg nicht sofort offensichtlich, denn es muss zunächst die ISO-Datei und zusätzlich die INSTALL.WIM-Datei eingehängt werden.

Auf einem aktuellen Windows 10 System mit Powershell-Unterstützung sieht der Vorgang z. B. so aus:

#Requires –RunAsAdministrator
# ISO-Datei sollte als absoluter Pfad angegeben werden, keine Remotelaufwerke, sonst klappt es manchmal nicht:
$iso=’D:\ISOs\de_windows_10_multiple_editions_
version_1703_updated_march_2017_x86_dvd_
10191741.iso‘
$im=Mount-DiskImage -ImagePath $iso -PassThru
If ($im.Attached) {
  $isoDrive=(Get-DiskImage –DevicePath $im.DevicePath | Get-Volume).DriveLetter
}

So nun sollte $isoDrive den Laufwerksbuchstaben des eingehängten ISO-Images haben. Mit diesem kann man dann weiterarbeiten und die Install.Wim einhängen:

# Verzeichnis zum Einhängen von Install.WIM anlegen
md $env:TEMP\WinRE
Mount-WindowsImage -ImagePath "$($isoDrive):\sources\install.wim" -Index 1 -path "$env:Temp\WinRE" -ReadOnly

Nach dem Kopiervorgang kann man nun auf die WinRE.WIM zugreifen:

dir $env:Temp\WinRE\windows\System32\Recovery\Winre.wim

Man könnte sie z. B. in das ADK für WinPE kopieren, damit man eine individuelle RettungsCD erstellen kann:

# bei x86:
copy $env:Temp\WinRE\windows\System32\Recovery\Winre.wim "${env:ProgramFiles(x86)}\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\en-us"

# oder bei x64:
copy $env:Temp\WinRE\windows\System32\Recovery\Winre.wim "${env:ProgramFiles(x86)}\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x64\en-us"

Hat man die Datei dann wegkopiert, sollte man die Umgebung noch wieder aufräumen, damit alles seine Ordnung hat:

Dismount-WindowsImage  -path $Env:Temp\WinRE  -Discard
DisMount-DiskImage -ImagePath $iso