Windows Recovery Partition löschen und neu erstellen

Vor etwas mehr als 8 Jahren habe ich einen Blog über das Löschen der Windows Recovery Partition geschrieben. Hey, mehr als 8 Jahre in der IT ist eine halbe Ewigkeit, vielleicht sogar mehr. Damals ging es darum, ein Problem mit dem Client-Backup des Windows Small Business Essential Server zu lösen.

Wichtig:
Die Partitionsnummern können abweichen. Achtet deshalb unbedingt darauf, dass die ermittelte Nummer verwendet und das Skript nicht nach dem Prinzip „Fire and Forget“ ausgeführt wird. Dafür ist es nämlich nicht gedacht, sondern dient lediglich als Sammlung der verwendeten Befehle.

Unten gibt es dann auch das Update wenn die Winre.wim fehlen sollte, der eigentliche Beitrag ist ja aus dem Juni 2024.

Das Problem

Heute mit Windows 11 und dem Server 2022 ist die Recovery Partition immer noch ein Thema. Meistens, wenn die Systempartition erweitert werden muss, befindet sich die Windows Recovery Partition am Ende der Festplatte.

Genau genommen sprechen wir vom Windows Recovery Environment (Windows RE), zu dem auch die Windows Recovery Partition gehört.

Die folgende Abbildung zeigt die Recovery Partition auf einem Windows Server 2022.

image

Wird die Disk nun erweitert (auf 196GB), dann sieht das wie folgt aus.

image

Natürlich gibt es eine Reihe von 3rd-Party-Tools, die hier helfen können, und einige davon sind sogar OpenSource, andere wiederum laufen in den kostenlosen Versionen nicht auf den Servern und müssen (und sollten) für den kommerziellen Einsatz bezahlt werden.

Wenn noch eine größere Anzahl von Servern oder (z.B. VMs) erweitert werden muss, ist die Unterstützung von PowerShell oder Kommandozeile (cmd.exe) hilfreich.

Die Vorgehensweise (Ablauf)

Die Erweiterung wird mit den folgenden Schritten durchgeführt.

  1. Deaktivieren von Windows RE
  2. Löschen der Windows Recovery Partition
  3. Erweitern der Systempartition (bis zum Maximum abzüglich 524MB)
  4. Erstellen der neuen Recovery Partition im freien Bereich (524MB) mit NTFS als Dateisystem und ohne Laufwerksbuchstaben
  5. Anpassen der Attribute der neuen Windows Recovery Partition
    – Partition Type = de94bba4-06d1-4d40-a16a-bfd50179d6ac
    – Partition Attribute = 0X8000000000000001
  6. Aktivieren von Windows RE

Achtung, bei MBR-Disks (die ich nicht mehr verwenden würde), lautet der Partition-Type anders, nämlich 27 und nicht de94bba4-06d1-4d40-a16a-bfd50179d6ac.

Die Schritte im Einzelnen

Vor dem ersten Schritt ist es sinnvoll, sich einen Überblick über den Zustand von Windows RE zu verschaffen und dann im Anschluss Windows RE zu deaktivieren.

image

Die grün umrandete Informationen zu Disk und Partition kann über die beiden PowerShell-Befehle Get-Disk und Get-Partition verifiziert werden.

image

Im Gegensatz zu meinem Blog zu beginn, habe ich inzwischen eine Möglichkeit gefunden, die Recovery-Partition mit PowerShell zu löschen.

image

Im Diskmanagement ist danach die Recovery Partition nicht mehr vorhanden.

image

Nun wird die Systempartition (Laufwerk C) auf die maximale Größe, abzüglich des Platzes für die Recovery Partition erweitert.

image

Was im Diskmanagement anschließend wie folgend aussieht. Wir sehen das Laufwerk C mit 195GB und 524MB freiem Platz für die Windows RE Partition.

image

Ok, jetzt die Frage Smile warum wird die Windows RE Partition mit 524MB angelegt, wenn sie doch vor dem Löschen 523MB hatte?

Grob geschätzt habe ich das bestimmt einige hundert Mal gemacht, ein einziges Mal hat Windows RE danach mit einer 523MB großen Partition nicht mehr funktioniert. Eine wirklich gute Analyse konnte ich aus Zeitgründen nicht durchführen. Der Workaround, der funktionierte, war eine Partition mit 524MB statt der ursprünglichen 523MB.

Nun geht es um den Wiederaufbau von Windows RE.

Der verbleibende Platz auf der Disk 0 (524MB) wird nun der neuen Windows RE Partition zugewiesen, darüber hinaus mit NTFS formatiert und kein Laufwerksbuchstabe verwendet.

image

Jetzt müssen wir noch die ID der Windows RE Partition und das GPT-Attribut ändern. Das ist auch der einzige Punkt, wo PowerShell keine Möglichkeit bietet.

Partition Type = de94bba4-06d1-4d40-a16a-bfd50179d6ac
Partition Attribute = 0X8000000000000001

Falls jemand von Euch eine bessere Lösung hat, bitte in die Kommentare schreiben – Danke!

image

Beide Einstellungen können mit diskpart.exe überprüft werden.

image

Sieht gut aus, würde ich sagen.

Fehlt nur noch die Aktivierung von Windows RE, vorher sollte man aber prüfen, ob Winre.wim im Verzeichnis C:\Windows\System32\recovery vorhanden ist.

image

Da Winre.wim eine versteckte Datei ist, wurde der Befehl Get-ChildItem mit der Option -Attributes h ausgeführt. Der Befehl reagentc /enable kopiert dann die Datei auf die Windows RE Partition (was ein paar Sekunden dauert).

Update 08.10.2025 – die Winre.wim fehlt …

Durchaus möglich ist, dass die Windows RE-Datei (Winre.wim) fehlt und damit reagentc das Image nicht auf die neue Recovery-Partition kopieren kann.

image

In diesem Fall empfiehlt sich die folgende Vorgehensweise.

  1. Bereitstellen einer ISO-Datei des entsprechenden Betriebssystems
    – Kopieren der ISO-Datei auf den Server
    – Ein Doppelklick mit dem Windows Explorer mounted das ISO
  2. Erstellen eines Verzeichnisses um die install.wim zu mounten
  3. Mounten der install.wim Datei nach $winDir
  4. Wechsel in das Recovery-Verzeichnis der gemounteten install.wim
  5. Kopieren der Winre.wim nach C:\Windows\System32\Recovery
  6. Aktivierung von Windows RE
  7. Unmount der install.wim

Auch hier die Schritte im Detail

Nach dem Doppelklick mit dem Windows Explorer ist das Windows Server 2022 Image auf Laufwerk G vorhanden.

image

Erstellen eines Verzeichnisses um die install.wim zu mounten und bereitstellen dieser mit dism.exe

image

Wechsel in das Recovery-Verzeichnis der gemounteten install.wim und kopieren der Winre.wim nach C:\Windows\System32\Recovery

image

Jetzt muss noch die Recovery Partition aktiviert (reagentc /enable kopiert die Winre.wim) und die install.wim wieder entfernt werden.

image

So, jetzt aber.

Natürlich gibt es alle Befehle als PowerShell-Datei zum Download.

Enjoy it und happy Recovery, b!

Supermicro X11SSL-F | Other devices

Am vergangenen Wochenende ist mir ein „alter Bekannter“ wieder über den Weg gelaufen, ich musste einen Server mit einem Supermicro X11SSL-F Mainboard mit Microsoft Hyper-V Server 2019 (RIP) neu installieren und bin dabei auf zwei nicht korrekt erkannte Geräte gestoßen.

image

Während ich den PCI Simple Communications Controller, wie in diesem Beitrag beschrieben aktualisieren konnte, blieb ein Gerät (Device) weiterhin unerkannt.

image

Eine Suche nach der folgenden ID PCI/VEN_8086&DEV_A135&CC_0000 brachte dann auch umgehend die Lösung. Unter folgendem Link stellt Supermicro eine ZIP-Datei mit dem passenden Treiber bereit:

https://www.supermicro.com/wdl/driver/ISH/

Der Treiber muss dann entpackt und entsprechend installiert werden. Da ich mittlerweile auf allen Windows Server Core Installationen Features on Demand (FOD) verwende, kann das Update auch über den Gerätemanager von Windows Server erfolgen.

image

Das nicht erkannte Gerät stellte sich als Intel® Integrated Sensor Solution heraus.

image

Enjoy it, b!

AD-Migration von Windows Server 2012 SBE auf Windows Server 2019

Farewell Small Business Essentials Server

Dieser Blog war nur eine Frage der Zeit, aber es war klar, dass er kommen wird (und leider muss). Nachdem mit dem Windows Server 2019 lediglich das Lizenz-Modell des SBE übriggeblieben ist, gibt es zwei Möglichkeiten in welche Richtung eine Small Business Server Umgebung entwickelt werden kann.

  1. Windows Server Standard
  2. Synology NAS

Den Weg in Richtung Windows Server Standard (also aktuell Windows Server 2019 oder 2022) wähle ich, wenn sich in der SBE-Umgebung eine Anwendungslandschaft etabliert hat, sprich einige Applikationsserver vorhanden sind und dazu auch noch virtualisiert wird.

Spoiler

Man kann aus zwei Synology NAS Systemen (dem darauf laufendem Synology Directory Server) und zwei Intel NUC PCs (als Hyper-V Hosts) ebenfalls eine interessante Infrastruktur bauen, dass soll aber das Thema in einem anderen Blog sein.

Migration

Die Umstellung auf Windows Server Standard verläuft wie im Folgenden dargestellt.

  1. Installation des neuen Servers als Member-Server in der bestehenden Domain
  2. Erstellen eines domain-basierten DFS-Roots
  3. Migration von vorhandenen Freigaben und der bereitgestellten Daten in das domain-basierte DFS
  4. Anpassung von Gruppen-Richtlinien und des Login-Scripts auf die Freigaben die nun über das DFS auf dem neuen Server (der ja aktuell noch als Member-Server läuft) abgebildet werden
  5. Heraufstufen (Promote) des neuen Member-Servers zu einem zweiten Domain-Controller und anpassen dessen DNS-Einträge
  6. Verschieben der FSMO auf den neuen Server
  7. Entfernen der Active Directory Zertifikatsdienste (mit der Webregistrierung muss beginnen werden) und zwingend danach einen Neustart durchführen
  8. Herunterstufen (Demote) des alten Servers
  9. Spätestens jetzt eventuell vorhandene Drucker auf dem Server migrieren
  10. Den alten Server aus der Domäne entfernen, oder besser erst einmal 14 Tage ausgeschaltet lassen (falls man was vergessen hat)
  11. Den domain functional level und den forrest functional level heraufstufen

Jeden der genannten Schritte werde ich hier nicht im Detail ausführen, dafür verkaufen andere Webseiten ganze Migration-Guides und ich denke, dass robocopy geläufig sein sollte.

Was ich aber für sinnvoll halte ist, sein (mein) Schaffen zu überprüfen. Sprich verhalten sich die Systeme so wie ich mir das vorstelle. Darum werde ich unten eine Reihe von Tests beschreiben, mit denen eine Prüfung zum jeweiligen Stand möglich ist.

Zu den Schritten 1 bis 4

Die Installation des Member-Servers ist selbstredend und da er im Verlauf der Migration ein Domain-Controller wird, sollte er auch gleich eine statische IP bekommen.

Wenn alle Scripte und GPOs angepasst sind, sollten auf den neu eingerichteten Member-Server auch die Zugriffe erfolgen. Genauso wichtig ist es, dass der alte Domain-Controller keine Zugriffe über SMB mehr zeigt.

# Anzeige von offenen Dateien über die SMB-Shares auf dem noch aktuellen Domain-Controller
Get-SmbOpenFile

Das folgende Beispiel finde ich gut, da es einen “false positive” zeigt.

image

Eine Session (dazu noch eine Anmelde-Sitzung) haben wir, dass NAS zur Datensicherung vergnügt sich noch mit diesem DC. Sobald wir den neuen DC und damit auch einen weiteren DNS haben, muss auf allen Clients dieser neue DNS auch eingetragen werden (der alte DC ist ab Schritt 8 nicht mehr vorhanden).

Zu Schritt 5

Mit Install-WindowsFeature muss auf dem Member-Server sowohl das Active-Directory als auch der DNS installiert werden, was in einem Schritt möglich ist.

# Installation des Active Directory und DNS
Install-WindowsFeature -Name AD-Domain-Services, DNS -IncludeAllSubFeature

image

Nun lauert im Server-Manager versteckt was früher der DCPromo war, in Form eines Wizards zur Fertigstellung des Domain-Controllers. In diesem Fall wird der Server als weiterer DC in die bestehende Domain und Forest integriert.

Zu Schritt 6

Der neue Server muss nun, wenn er funktional wirklich ein Domain-Controller ist, den NETLOGON- und den SYSVOL-Share bereitstellen. Bei mehreren Migrationen von Windows Server 2012 SBE (auch R2) auf Windows Server 2019 war das nicht der Fall und jedes Mal, war eine dysfunktionale SYSVOL-Replikation der Grund.

Die Lösung dazu aber immer beeindruckend einfach, der als neuer Domain-Controller gedachte Windows Server 2019 wurde wieder aus dem AD entfernt (demoted) und die Replikation auf dem Windows Server 2012 repariert. Danach den Windows Server 2019 wieder zum Domain-Controller promoten und schauen, ob die beiden Shares nun verfügbar sind. Alle Maßnahmen, bei denen man die Shares auf anderem Wege erstellt hat, führten zumindest bei mir, früher oder später zu Problemen.

image

# Anzeige des SysVol und Netlogon Shares
Get-SmbShare | Where-Object { $_.Description -match "Logon server share" }

Zum Verschieben der FSMO-Rollen, wird der folgende PowerShell-Befehl verwendet.

# Verschieben der FSMO-Rollen
Move-ADDirectoryServerOperationMasterRole -Identity Neuer-Domain-Controller -OperationMasterRole SchemaMaster, DomainNamingMaster, PDCEmulator, RIDMaster, InfrastructureMaster

Sollte der Befehl funktionieren, hat man mit einem Rutsch alle Rollen migriert. Ich schreibe hier bewusst im Konjunktiv, da auch hier gelegentlich das Problem aufgetreten ist, dass der Befehl nicht wie erwartet funktioniert.

Dann haben die beiden folgenden Möglichkeiten bisher zum Erfolg geführt.

  • Verwenden von Move-ADD… mit immer nur einer Rolle
  • Verschieben der Rollen in den entsprechenden MMCs
# Abfrage ob die FSMO-Rollen nun auf den neuen DC sind
netdom query fsmo

Klar, kann man die Rollen auch mit PowerShell abfragen, dazu sind aber zwei Befehle notwendig, bzw. man muss in unterschiedlichen Kontexten arbeiten.

# Abfrage ob die FSMO-Rollen nun auf den neuen DC sind
Get-ADDomain | Select-Object InfrastructureMaster, RIDMaster, PDCEmulator
Get-ADForest | Select-Object DomainNamingMaster, SchemaMaster

Hier alle drei Aufrufe als Screenshot.

image

Abschließend schaue ich immer, ob die wichtigen Active Directory Dienste laufen.

# Anzeige von wichtigen Diensten für das Active Directory
Get-Service adws,kdc,netlogon,dns

image

Wie vielleicht bisher schon zu sehen war, teste ich möglichst viel und zwischendurch, um ein Gefühl zu bekommen, ob die Migration sauber läuft. Das hat sich über die Jahre hin als sinnvoll herausgestellt, da oftmals nur kleine Korrekturen zwischendurch notwendig waren und nicht am Ende ein großes nicht sauber funktionierendes Nichts steht Smile

Zwischen Schritt 6 und 7 kann man ein paar Tage vergehen lassen. Man muss hier lediglich mit den Meldungen des alten Windows Server 2012 SBE leben, der ein Fehlen der FSMO-Rollen zurecht, als Lizenzverstoß reklamiert.

Zu Schritt 7

Bevor nun der alte Windows Server 2012 SBE seine Rolle als Domain-Controller verliert, müssen die Active Directory Certificate Services deinstalliert werden. Macht man das von Hand, zuerst die Certification Authority Web Enrollment und dann den Rest danach deinstallieren.

# Anzeige der Roles und Features
Get-WindowsFeature -Name ADCS-Web-Enrollment, ADCS-Cert-Authority, AD-Certificate

image

Auch mit PowerShell muss das in zwei Schritten erfolgen.

# Deinstallation der Active Directory Certificate Services
Remove-WindowsFeature -Name ADCS-Web-Enrollment
Remove-WindowsFeature -Name AD-Certificate

image

Nun ist ein Neustart zwingend notwendig, auch wenn das durch die PowerShell-Ausgaben nicht den Eindruck erweckt. Wird der vergessen, jagt man hinterher eine Reihe von komischen Dingen nach. Also nun einfach durchstarten (den alten Domain-Controller).

# Neustart des alten Servers
Restart-Computer -Force

Nach dem Neustart kann der alte Domain-Controller heruntergestuft werden.

Zu Schritt 8

Alle Informationen dazu kann man bei Microsoft hier nachlesen. Obwohl ein großer Freund von PowerShell, führe ich diesen Schritt immer in der GUI durch. Dazu im Server Manager einfach die Rolle Active Directory Domain Services entfernen.

image

Der Remove Roles and Features Wizard bietet einem danach die Möglichkeit den Server herunterzustufen.

image

Der Vorgang ist selbsterklärend, am Ende dessen muss eine Meldung ähnlich der folgenden vorhanden sein.

image

Ok, hier noch die Aktion in PowerShell.

# Windows PowerShell script for AD DS Deployment
Import-Module ADDSDeployment
Uninstall-ADDSDomainController -DemoteOperationMasterRole:$true -Force:$true

Mit einem Klick auf Demote im Wizard wird der Prozess gestartet und der Server startet nach dem Herunterstufen neu. Davor ist es sinnvoll einen Blick in die DNS-Einstellungen der Netzwerkkarte zu werfen, steht dort wie bei vielen Domain-Controllern in SBE-Umgebungen “nur” 127.0.0.1, ist es notwendig den DNS vom neuen Domain Controller mit einzutragen. Sonst geht die Anmeldung mit einem Konto aus der Domain schief.

Zum Schluss

Eigentlich war es das, aber die Erfahrungen der letzten Migrationen haben gezeigt das immer noch der eine oder andere Rest des alten Domain-Controllers zurückbleibt.

Diesen haben ich als Namespace-Server im DFS entfernt. Damit das ohne Probleme funktioniert sollte der alte Server noch vorhanden sein und für kurze Zeit als Member-Server arbeiten dürfen.

image

Der alte Domain-Controller (der nun keiner mehr ist) darf nun auch nicht mehr in der SYSVOL-Replication auftauchen.

image

Ein weiteres Problem, eher optischer Natur ist der Verbleib des alten Servers als Name-Server in der Reverse Lookup Zone (falls man überhaupt eine hat).

image

Hier diesen entfernen und wie im Bild oben zu sehen ist, für den neuen die aktuelle IP auflösen lassen. Im Allgemeinen ist es sinnvoll den DNS nach alten Einträgen zu durchsuchen und diese zu löschen.

Enjoy it, b!

Supermicro X11SCH-F “other devices”

Nach der Installation von Windows Server 2019 wird für das Supermicro X11SCH-F Motherboard eine Reihe von unbekannten Geräten (other devices) angezeigt, für die kein Treiber installiert werden wurde.

image

Würden wir uns auf einem Windows Server ohne GUI (Desktop Experience) befinden, dann wäre DevManView von Nirsoft die erste Wahl um die korrekte Installation von Treibern und Geräten zu kontrollieren. Das Tool ist kostenfrei und gehört nach meiner Meinung auf jeden Windows Server Core, aber das nur nebenbei.

Die Lösung dieses Problems, habe ich in Teilen in diesem Blog beschreiben. Interessanter Weise hat aber die Installation des aktuellsten Intel Chipset INF Utility nicht alle Geräte korrekt mit Treibern versorgt.

image

Übrig geblieben sind zwei Geräte mit der Bezeichnung PCI Simple Communications Controller

image

Windows Update wollte für die beiden Geräte ebenfalls keine Treiber bereitstellen und so war etwas Recherche notwendig, um hier eine Lösung zu finden. Für mich interessant war, dass Supermicro ebenfalls auf seiner Webseite einen Intel Chipsatz Treiber anbietet, der nicht ganz der aktuellen Version von Intel entspricht, dass Problem aber behoben hat.

image

Dabei gab es aber noch ein kleineres Problem zu lösen. Wenn nun schon das aktuelle Intel Chipset INF Utility installiert wurde, bemerkt das der Installer infinst_autol.exe und bietet ein Downgrade an, was natürlich eine Option sein könnte. Eine Alternative ist aber, explizit mit einem rechten Mausklick und Update driver, den Pfad für den Treiber mit anzugeben.

image

Die Installation muss explizit für jedes Gerät erfolgen:

  1. Rechtklick und Auswahl von Update driver
  2. Auswahl von Browse my computer for driver software
  3. Über die Option Browse den Pfad zum Treiber für Windows 10-x64 angeben und den Treiber installieren

    C:\Users\Administrator\Downloads\Chipset_v10.1.17861.8101\DriverFiles\production\Windows10-x64

Beide Geräte wurden damit erfolgreich erkannt.

image

image

Da es sich um Treiber für die Intel Management Engine handelt, wäre möglicher Weise eine Suche nach einen passenden Treiberpaket dafür ebenfalls von Erfolg gekrönt gewesen. Letztendlich hat es aber so auch funktioniert.

Enjoy it, b!

NIC Teaming: Warning 16945 MsLbfoSysEvtProvider

Wird auf einem Windows Server (egal ob 2012R2, 2016 oder 2019) ein Lbfo-Team erstellt, schreibt das Betriebssystem nach einem Neustart die folgende Meldung (Warning) in das System-Eventlog.

image

Ein Blick auf alle vorhandenen MAC-Adressen zeigt, dass hier Adressen doppelt vergeben worden sind. Das erstellte Team (hier Team Ethernet 1) besitzt die gleiche MAC-Adresse wie einer der für das Team verwendeten Adapter.

image

Hier nochmals die MAC-Adressen.

  • TEAM Team Ethernet 1 = 0C-C4-7A-41-7B-47
  • NIC Ethernet = 0C-C4-7A-41-7B-47
  • Hyper-V Virtual Switch vEthernet (_ Network 172.16.32.0) = 0C-C4-7A-41-7B-47

Das Problem beheben wir damit, dass alle Adapter die eine gleiche Adresse haben abgeändert werden. Dabei ist es sinnvoll MAC-Adressen des Teams und des Hyper-V Virtual Switches zu ändern, anstatt die MAC der NIC zu überschreiben. Dort ist diese nämlich fest hinterlegt, im Team und im Hyper-V Switch jedoch nicht.

  • TEAM Team Ethernet 1 = 0C-C4-7A-41-7B-45

  • Hyper-V Virtual Switch vEthernet (_ Network 172.16.32.0) =
    0C-C4-7A-41-7B-48

Das kann man über die GUI erledigen, oder falls ein Windows Server Core vorliegt mit PowerShell.

# Ändern der MAC-Adresse des Teams "Team Ethernet 1"
Set-NetAdapter -Name "Team Ethernet 1" -MacAddress "0C-C4-7A-41-7B-45"
# Ändern der MAC-Adresse des Hyper-V Switches "vEthernet (_ Network 172.16.32.0)"
Set-NetAdapter -Name "vEthernet (_ Network 172.16.32.0)" -MacAddress "0C-C4-7A-41-7B-48"

Nach der Änderung sieht die Vergabe der MAC-Adressen wie folgt aus und die Warnung 16945 wird beim nächsten Neustart nicht mehr ins Eventlog geschrieben.

image

Update zum Windows Server 2019:

Auf einem Windows Server 2019 hatte ich folgendes Verhalten, dort wurden die MAC-Adressen im Wechsel verteilt. Der Hyper-V Switch kollidierte mit MAC-Adresse des der ersten NIC, das Team mit der MAC-Adresse der zweiten NIC.

image

Beheben lässt sich das Problem aber auf die gleiche Weise. Hier nochmals die MAC-Adressen.

  • TEAM Team Ethernet 1 = AC-1F-6B-F6-3E-C1
  • NIC Ethernet = AC-1F-6B-F6-3E-C1
  • Hyper-V Virtual Switch vEthernet (_ Network 172.16.32.0) = AC-1F-6B-F6-3E-C0
  • NIC Intel Ethernet I210 #2 = AC-1F-6B-F6-3E-C0

image

  • TEAM Team Ethernet 1 = AC-1F-6B-F6-3E-C3
  • NIC Ethernet = AC-1F-6B-F6-3E-C1
  • Hyper-V Virtual Switch vEthernet (_ Network 172.16.32.0) =
    AC-1F-6B-F6-3E-C2
  • NIC Intel Ethernet I210 #2 = AC-1F-6B-F6-3E-C0

Enjoy it, b!