{"id":12724,"date":"2025-01-24T23:09:24","date_gmt":"2025-01-24T21:09:24","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=12724"},"modified":"2025-01-24T23:09:24","modified_gmt":"2025-01-24T21:09:24","slug":"windows-installationsmedien-entmuellen-anpassen","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/windows-installationsmedien-entmuellen-anpassen\/","title":{"rendered":"So k\u00f6nnen Windows Installationsmedien angepasst werden"},"content":{"rendered":"<p>Microsoft stellt seit einiger Zeit offizielle ISO-Abbilder von Windows 10\/11 bereit. Spannend sind die M\u00f6glichkeiten, welche bei propriet\u00e4rer Software verbleiben, um das Abbild ver\u00e4ndern zu k\u00f6nnen. Den besten Grund dazu hat Microsoft selbst geliefert: Blotware. Windows wird mit immer mehr Dingen zugem\u00fcllt, die es unn\u00f6tig aufbl\u00e4hen &#8211; die Gr\u00f6\u00dfe einer DVD hat es l\u00e4ngst \u00fcberschritten. <\/p>\n<p>W\u00e4hrend das bei heutigen USB-Sticks und externen SSDs kein Problem mehr ist, st\u00f6rt nicht nur die Verschwendung mit einer potenziell gr\u00f6\u00dferen Angriffsfl\u00e4che. Teile der Bloatware nervt zudem, etwa im Startmen\u00fc. Dieser Beitrag zeigt die Grundlagen daf\u00fcr, um Windows Installationsmedien anpassen zu k\u00f6nnen.<\/p>\n<h2 class=\"wp-block-heading\">Das brauchst du<\/h2>\n<p>Neben einem Installationsabbild (ISO Datei) der jeweiligen Windows-Version ben\u00f6tigst du zudem eine laufende Windows-Installation. Abbilder k\u00f6nnen seit Windows 10 von Microsoft heruntergeladen werden.<sup data-fn=\"6b7bb385-0291-4817-a1d5-3fca43c0a5d2\" class=\"fn\"><a href=\"#6b7bb385-0291-4817-a1d5-3fca43c0a5d2\" id=\"6b7bb385-0291-4817-a1d5-3fca43c0a5d2-link\">1<\/a><\/sup><sup data-fn=\"88f27ac8-a3df-42fb-8534-de0557135bbb\" class=\"fn\"><a href=\"#88f27ac8-a3df-42fb-8534-de0557135bbb\" id=\"88f27ac8-a3df-42fb-8534-de0557135bbb-link\">2<\/a><\/sup> Es kommen mehrere hauseigene Werkzeuge von Microsoft zum Einsatz, die unter GNU\/Linux oder anderen Betriebssystemen nicht laufen. Eine VM reicht v\u00f6llig aus. Allerdings solltest du hier beim Testen nicht vergessen, sie nach dem Neu-Erstellen einer ISO aus- und wieder einzuschalten.<\/p>\n<p>Dar\u00fcber hinaus ist das <em>Windows Assessment and Deployment Kit<\/em> (Windows ADK) n\u00f6tig.<sup data-fn=\"f17c33e4-6007-4dc9-9560-97b1f807914f\" class=\"fn\"><a href=\"#f17c33e4-6007-4dc9-9560-97b1f807914f\" id=\"f17c33e4-6007-4dc9-9560-97b1f807914f-link\">3<\/a><\/sup> Zwar befinden sich die meisten Module im DISM-Paket und sind damit vorinstalliert. Um am Ende nach unseren Anpassungen eine neue ISO-Datei zu erstellen, m\u00fcssen wir jedoch das ADK installieren. Es enth\u00e4lt hierf\u00fcr das Werkzeug <code class=\"\" data-line=\"\">oscdimg<\/code>. Achtung: Es existieren verschiedene ADK-Versionen f\u00fcr unterschiedliche Windows-Editionen!<\/p>\n<p>Hardwareseitig solltest du auf dem Arbeitssystem zur Durchf\u00fchrung der Anpassungen gen\u00fcgend freien Speicherplatz besitzen: Grob \u00fcberschlagen wird mindestens die 3,5 fache Gr\u00f6\u00dfe des ISO Abbilds ben\u00f6tigt, siehe den folgenden Abschnitt f\u00fcr die Hintergr\u00fcnde. An vielen Stellen unterst\u00fctzt Microsoft \u00fcbrigens keine Netzlaufwerke. Lediglich das neu erstellte Abbild erlaubt der Konzern auf externe Laufwerke zu schreiben. Ich habe die VM daher gro\u00dfz\u00fcgig mit 100 GB Plattenspeicher ausgestattet.<\/p>\n<h2 class=\"wp-block-heading\">Was du zum Aufbau einer Windows-ISO wissen solltest<\/h2>\n<p>Bei ISO-Dateien handelt es sich um Abbilder einer CD oder DVD. Die Zeiten physischer Scheiben sind zwar vorbei. Doch ISO-Abbilder sind geblieben, um stattdessen auf USB-Sticks und anderen Medien alle notwendigen Dateien (\u00fcber 900 bei Windows 10 22H2) in einem Container zu b\u00fcndeln. Durch die Entstehung als 1:1 Kopie lassen sich Abbilder &#8211; im Gegensatz zu Archiven &#8211; nicht nachtr\u00e4glich ver\u00e4ndern. Nach dem Einh\u00e4ngen der ISO-Datei muss daher zuerst deren Inhalt in ein tempor\u00e4res Verzeichnis auf der lokalen Festplatte kopiert werden. Damit liegen wir schon bei \u00fcber 12 GB.<\/p>\n<p>In diesem Abbild liegen wiederum weitere Abbilder von Windows, wof\u00fcr Microsoft das WIM-Format (Windows Image Format) verwendet.<sup data-fn=\"478fa562-588f-47ef-a6e0-944bf1aeaa42\" class=\"fn\"><a href=\"#478fa562-588f-47ef-a6e0-944bf1aeaa42\" id=\"478fa562-588f-47ef-a6e0-944bf1aeaa42-link\">4<\/a><\/sup> Seit Windows Vista kopiert der Installations-Assistent haupts\u00e4chlich eines dieser Abbilder auf das lokale System, sie liegen in <code class=\"\" data-line=\"\">sources\\install.wim<\/code>. Mit ca. 5 GB ist es die gr\u00f6\u00dfte Datei, das Archivprogramm 7-Zip kann sie lesend \u00f6ffnen. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik.png\"><img loading=\"lazy\" decoding=\"async\" width=\"693\" height=\"508\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik.png\" alt=\"\" class=\"wp-image-12727\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik.png 693w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-300x220.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-491x360.png 491w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-232x170.png 232w\" sizes=\"auto, (max-width: 693px) 100vw, 693px\" \/><\/a><\/figure>\n<\/div>\n<p>Die Nummern stehen f\u00fcr verschiedene Editionen von Windows: 1 entspricht Windows 10 Home, 2 die gleichnamige N-Edition &#8211; jede Edition existiert mit und ohne N. Es folgen Education (3 &amp; 4), Pro (5 &amp; 6) sowie weitere. Bei Windows 10 22H2 sind es insgesamt 10 St\u00fcck. Jeder der Ordner enth\u00e4lt die bekannte Verzeichnisstruktur einer abgeschlossenen Windows-Installation. F\u00fcr Anpassungen ist es erforderlich, den jeweiligen <em>Index<\/em> anzugeben. Die \u00c4nderungen gelten somit nur f\u00fcr die jeweilige Edition, etwa Windows 10\/11 Pro.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"465\" height=\"404\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-1.png\" alt=\"\" class=\"wp-image-12728\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-1.png 465w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-1-300x261.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-1-414x360.png 414w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-1-196x170.png 196w\" sizes=\"auto, (max-width: 465px) 100vw, 465px\" \/><\/a><\/figure>\n<\/div>\n<p>Wer die Installations-Umgebung anpassen m\u00f6chte, wird in <code class=\"\" data-line=\"\">sources\\boot.wim<\/code> f\u00fcndig. Sie ist deutlich kleiner, da es sich um ein abgespecktes Windows PE handelt. Mehrere Editionen gibt es davon nicht, hier ist immer Index 2 zu verwenden.<\/p>\n<h2 class=\"wp-block-heading\">Einh\u00e4ngen: Wie lassen sich diese Abbilder anpassen?<\/h2>\n<p>Ein WIM-Abbild l\u00e4sst sich zum Schreiben \u00f6ffnen. Daf\u00fcr muss man dessen Inhalt an einen frei w\u00e4hlbaren, leeren Ordner einh\u00e4ngen. Das Konzept erinnert stark an GNU\/Linux, wobei es dort systemweit angewendet wird, sodass Laufwerksbuchstaben entfallen k\u00f6nnen. Bei Windows hingegen k\u00f6nnen keine Partitionen an beliebiger Stelle eingeh\u00e4ngt werden &#8211; das ist auf WIM-Dateien beschr\u00e4nkt.<\/p>\n<p>Sie lassen sich mit DISM und den dazugeh\u00f6rigen PowerShell Cmd-Lets einh\u00e4ngen. Das DISM-Syntax ist am gruseligsten, daher verwende ich lieber die PS. Grunds\u00e4tzlich ist der Einh\u00e4ngepfad zwar frei w\u00e4hlbar. Da wir jedoch an verschiedenen Stellen \u00c4nderungen vornehmen, empfehle ich ein Arbeitsverzeichnis zu erstellen. Darin legt ihr das vanilla Windows ISO Abbild ab und wechselt in der PS dort hinein. Ein paar Variablen machen das Arbeiten damit zudem weniger schmerzhaft:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-powershell\" data-line=\"\">mkdir ul_win-iso\ncd ul_win-iso\n\n$cwd = (Get-Item -Path &quot;.\\&quot; -Verbose).FullName\n$iso = $cwd + &quot;\\Win10_22H2_German_x64v1.iso&quot;\n$mount = &quot;$cwd\\iso_mount&quot;\nmkdir $mount<\/code><\/pre>\n<p>Da die Windows-Werkzeuge an einigen Stellen nur absolute Pfade akzeptieren, was schnell zu Un\u00fcbersichtlichkeit und nervigem C&amp;P f\u00fchrt, enth\u00e4lt <code class=\"\" data-line=\"\">$cwd <\/code>den absoluten Pfad zu unserem Arbeitsverzeichnis, in dem wir uns befinden. <code class=\"\" data-line=\"\">$iso<\/code> ist unser Vanilla-Abbild und <code class=\"\" data-line=\"\">$mount<\/code> bekommt eine (scheibbare) Kopie des ISO-Inhalts. Daf\u00fcr muss zuvor die ISO-Datei (lesend) eingeh\u00e4ngt werden. Windows sucht automatisch nach einem freien Laufwerksbuchstaben, den wir uns in <code class=\"\" data-line=\"\">$drive <\/code>merken.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">$isoMount = mount-diskimage $iso -PassThru\n$drive = ($isoMount | get-volume).DriveLetter\n\nxcopy \/E \/I \/H \/R \/Y \/J ${drive}: $mount<\/code><\/pre>\n<p>Unabh\u00e4ngig davon, ob wir die Installationsumgebung (<code class=\"\" data-line=\"\">boot.wim<\/code>) oder das sp\u00e4ter installierte Windows (<code class=\"\" data-line=\"\">install.vim<\/code>) anpassen m\u00f6chten &#8211; in jedem Falle ben\u00f6tigen wir daf\u00fcr einen weiteren, leeren Ordner. <\/p>\n<h2 class=\"wp-block-heading\">Beispiel 1: Wir entm\u00fcllen die vorinstallierten Apps<\/h2>\n<p>In diesem Beispiel h\u00e4nge ich das zu installiere Windows 10 Pro (Index 5) Installationsabbild ein.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-powershell\" data-line=\"\">$installWim = &quot;$cwd\\install.wim_mount&quot;\nmkdir $installWim\nMount-WindowsImage -ImagePath $mount\\sources\\install.wim -Index 5 -Path $installWim<\/code><\/pre>\n<p>Mit DISM und dem Pfad zum Abbild als Pr\u00e4fix k\u00f6nnen wir Befehle im Kontext dieses Abbilds ausf\u00fchren, statt des bereits laufenden Windows. Beispielsweise liefert folgender Aufruf eine Liste aller MS Store Anwendungen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-powershell\" data-line=\"\">dism \/image:$installWim \/Get-ProvisionedAppxPackages<\/code><\/pre>\n<p>Lesbarer wird es, wenn wir uns die Paketnamen aus der Ausgabe heraus filtern:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-powershell\" data-line=\"\">dism \/image:$installWim \/Get-ProvisionedAppxPackages | Select-String -Pattern &#039;PackageName: (.+)$&#039; | % {&quot;$($_.matches.groups[1])&quot;}<\/code><\/pre>\n<p>Interessant, was dort alles vorinstalliert ist. Alleine zu Xbox finden sich 6 Pakete, die nur f\u00fcr Nutzer des Dienstes relevant sind. Der gro\u00dfe Rest schleppt sie als Bloatware im Betriebssystem mit sich herum. Man k\u00f6nnte diese nun von Hand entfernen, wof\u00fcr wir ein interessantes PS-Syntax verwenden m\u00fcssen. Allerdings ist das m\u00fchsam und wir m\u00fcssten dies f\u00fcr jede neue Windows-Version wiederholen.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-powershell\" data-line=\"\">dism \/image:$installWim \/Remove-ProvisionedAppxPackage \/PackageName:Microsoft.Xbox.TCUI_1.23.28002.0_neutral_~_8wekyb3d8bbwe<\/code><\/pre>\n<p>Besser: Wir filtern die Liste auf die gew\u00fcnschten Namen (z.B. Alles von Xbox, Bing Wetter, MS Office usw) und holen uns die exakten Versionen aus dem Abbild. Diese leiten wir an Remove-ProvisionedAppxPackage weiter.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-powershell\" data-line=\"\">$existingAppx=(dism \/image:$installWim \/Get-ProvisionedAppxPackages | Select-String -Pattern &#039;PackageName: (.+)$&#039; | % {&quot;$($_.matches.groups[1])&quot;})\n$existingAppx | Select-String -Pattern &#039;(Xbox|BingWeather|MicrosoftOfficeHub|WindowsMaps|Office\\.OneNote|SkypeApp|ZuneMusic|MixedReality|CommunicationsApp)&#039; | % { write-host &quot;Entferne $_&quot;; dism \/image:$installWim \/Remove-ProvisionedAppxPackage \/PackageName:$_ }<\/code><\/pre>\n<h2 class=\"wp-block-heading\">So darfst du \u00c4nderungen an Dateienvornehmen<\/h2>\n<p>Abseits der offiziellen Windows-Funktionen m\u00f6chtest du m\u00f6glicherweise etwas ver\u00e4ndern oder entfernen. Das ist vor allem f\u00fcrs Modden interessant, was bei propriet\u00e4rer Software wie MS Windows jedoch nur eingeschr\u00e4nkt durch Reverse Engineering m\u00f6glich ist. Ein relativ einfaches Beispiel besteht darin, den trostlosen Hintergrund im Installations-Assistenten auszutauschen. Der liegt direkt im Dateisystem, sodass man dieses Bild austauschen kann. <code class=\"\" data-line=\"\">Windows\\System32\\setup.bmp<\/code> lautet der Pfad zum dauerhaft angezeigten. Soweit die Theorie, in der Praxis fehlen jedoch die Rechte daf\u00fcr. <\/p>\n<p>Zun\u00e4chst lege ich mir einen neuen Unterordner im Arbeitsverzeichnis an, in den <code class=\"\" data-line=\"\">boot.wim<\/code> gemountet wird:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">$bootWim = &quot;$cwd\\boot.wim_mount&quot;\nmkdir $bootWim\nMount-WindowsImage -ImagePath $mount\\sources\\boot.wim -Index 2 -Path $bootWim<\/code><\/pre>\n<p>M\u00f6chtet ihr dort Dateien ersetzen (z.B. die erw\u00e4hnte <code class=\"\" data-line=\"\">setup.bmp<\/code>), gelingt dies selbst mit Administrator-Rechten nicht. Das liegt daran, dass in den ACLs selbst lokale Administratoren lediglich lesen und ausf\u00fchren d\u00fcrfen:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"377\" height=\"323\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-2.png\" alt=\"\" class=\"wp-image-12731\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-2.png 377w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-2-300x257.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-2-198x170.png 198w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/grafik-2-210x180.png 210w\" sizes=\"auto, (max-width: 377px) 100vw, 377px\" \/><\/a><\/figure>\n<\/div>\n<p>Um dort auch schreiben zu k\u00f6nnen, \u00fcbertragen wir uns die Eigent\u00fcmerschaft mit <code class=\"\" data-line=\"\">takeown<\/code> (vergleichbar mit <code class=\"\" data-line=\"\">chown<\/code> unter GNU\/Linux) und gew\u00e4hren dem angemeldeten Benutzer durch <code class=\"\" data-line=\"\">icacls<\/code> volle Rechte.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">takeown \/f $bootWim\\Windows\\System32\\setup.bmp\nicacls $bootWim\\Windows\\System32\\setup.bmp \/grant ${Env:UserName}:F<\/code><\/pre>\n<p>Nun k\u00f6nnen wir diese ver\u00e4ndern. Aber Vorsicht: Das Windows Setup reagiert allergisch auf gel\u00f6schte &amp; neu angelegte Dateien. In meinen Tests hat das dazu gef\u00fchrt, dass der Assistent zwar das Bild kurz anzeigte, dann jedoch abst\u00fcrzte. Stabil funktionierte es nur, wenn man die neue Datei in einem anderen Ordner umbenannt (hier in <code class=\"\" data-line=\"\">setup.bmp<\/code>) und anschlie\u00dfend im <code class=\"\" data-line=\"\">System32<\/code> Ordner ersetzt.<\/p>\n<h2 class=\"wp-block-heading\">\u00c4nderungen speichern und eine neue ISO erstellen<\/h2>\n<p>Nachdem du mit den Anpassungen fertig bist, schlie\u00dfe s\u00e4mtliche Programme, die auf Dateien aus den Abbildern zugreifen. Erst durch das Aush\u00e4ngen werden die \u00c4nderungen in die Quelldatei geschrieben. Ist das nicht gew\u00fcnscht, ersetzt du <code class=\"\" data-line=\"\">-save<\/code> durch <code class=\"\" data-line=\"\">-discard<\/code>. Der Pfad ist entsprechend auf den Einh\u00e4ngepfad anzupassen. Falls du mehrere eingeh\u00e4ngt hast, muss dies f\u00fcr jedes wiederholt werden.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-powershell\" data-line=\"\">Dismount-WindowsImage -path $bootWim -save<\/code><\/pre>\n<p>Nun liegen unsere \u00c4nderungen allerdings noch nicht im ISO. Sondern lediglich in deren lokaler Kopie, die wir zwecks Schreibrechten erstellt haben. Auf dessen Basis m\u00fcssen wir daher ein neues ISO erstellen &#8211; hier kommt das ADK zum Einsatz. Microsoft macht euch damit das Leben jedoch schwer: Es wird in einem Pfad voller Leer- und Sonderzeichen (!) installiert. Zu allem \u00dcberfluss kann die Konsole in Windows bis heute nicht vern\u00fcnftig damit umgehen (!!), sodass als Workaround ein &amp; vor den Befehl gesetzt werden m\u00fcsste. Der ist aber nicht ohne Seiteneffekte (!!!), sondern verhindert die Substitution von Variablen &#8211; welche ich als Workaround einsetze, um mit den erzwungenen absoluten Pfaden nicht wahnsinnig zu werden. Um aus dieser Katastrophe halbwegs mit blauem Auge raus zu kommen, habe ich einen weiteren Workaround gefunden: Ein Alias. Damit k\u00f6nnen wir das Werkzeug fast schon vern\u00fcnftig verwenden.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-powershell\" data-line=\"\">Set-Alias -Name oscdimg -Value &#039;C:\\Program Files (x86)\\Windows Kits\\10\\Assessment and Deployment Kit\\Deployment Tools\\amd64\\Oscdimg\\OSCDIMG.exe&#039;\noscdimg -lWin10_22H2_Ger_x64v1_custom -m -u2 &quot;-b${mount}\\boot\\etfsboot.com&quot; &quot;$mount&quot; &quot;${cwd}\\win10-22h2_custom.iso&quot;<\/code><\/pre>\n<p>OSCDIMG erstellt uns ein neues ISO-Abbild.<sup data-fn=\"759295cb-7e40-4260-b241-49d28be14531\" class=\"fn\"><a href=\"#759295cb-7e40-4260-b241-49d28be14531\" id=\"759295cb-7e40-4260-b241-49d28be14531-link\">5<\/a><\/sup> Es hat ebenfalls tolle Eigenheiten: Die Parameter werden nicht mit <code class=\"\" data-line=\"\">\/<\/code> \u00fcbergeben, wie es Microsofts kuriose Eigenart ist. Sondern mit einem Minus, was eher der Unix-Welt entspricht. Dort ist allerdings ein Leerzeichen danach \u00fcblich, damit kann OSCDIMG nicht umgehen. Wer z.B. -l Test123 \u00fcbergibt, wird einen Fehler erhalten, weil dies als leer erkannt wird&#8230; das macht den Aufruf wenig \u00fcbersichtlich, schauen wir uns daher die Parameter an:<\/p>\n<ul class=\"wp-block-list\">\n<li><code class=\"\" data-line=\"\">-l<\/code> steht f\u00fcr Label &#8211; die Bezeichnung wird z.B. im Dateiexplorer angezeigt. Ist nicht zwingend notwendig, ich finde es jedoch sinnvoll. Leider auf 32 Zeichen Begrenzt. Zumindest kann man kenntlich machen, dass es sich um ein angepasstes Abbild handelt.<\/li>\n<li><code class=\"\" data-line=\"\">-m<\/code> erlaubt Abbilddateien, die \u00fcber 700 MB (CDs) hinaus gehen. Eine andere Wahl bleibt uns nicht, Windows ist heutzutage sehr kr\u00e4ftig gebaut&#8230;<\/li>\n<li> <code class=\"\" data-line=\"\">-u2<\/code> steht f\u00fcr das UDF-Format von DVDs.<\/li>\n<li>&#8211;<code class=\"\" data-line=\"\">b<\/code> \u00fcbergibt den Pfad zum Boot-Abbild, d.H. die <code class=\"\" data-line=\"\">boot.wim<\/code> Datei.<\/li>\n<li>Es folgt der Pfad zur komplett extrahierten Kopie des Installationsmedium (<code class=\"\" data-line=\"\">$mount<\/code>) und zum Schluss die ISO-Datei zur Ausgabe.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\">Test<\/h2>\n<p>Die Ausgabedatei enth\u00e4lt nun das originale Installations-Abbild von Microsoft inklusive unserer Anpassungen und kann genau so verwendet werden: <a href=\"https:\/\/u-labs.de\/portal\/multi-boot-usb-stick-ssd-so-startest-du-mehrere-isos-installationsmedien-fuer-betriebssysteme-vom-gleichen-stick-ventoy-pocketknife-1\/\" data-type=\"post\" data-id=\"10492\">Zum Beispiel mit Ventoy auf einen Multi-Boot Stick ablegen<\/a>, um davon zu booten. Oder als Startmedium in einer VM hinterlegen, letzteres d\u00fcrfte f\u00fcr Tests der einfachere Weg sein. In meinem Beispiel ist ein Installations-Assistent mit Linux-Pinguin als Hintergrund entstanden:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/Bildschirmfoto_2024-03-03_17-13-56.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"841\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/Bildschirmfoto_2024-03-03_17-13-56-1024x841.jpg\" alt=\"\" class=\"wp-image-12736\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/Bildschirmfoto_2024-03-03_17-13-56-1024x841.jpg 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/Bildschirmfoto_2024-03-03_17-13-56-300x246.jpg 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/Bildschirmfoto_2024-03-03_17-13-56-768x631.jpg 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/Bildschirmfoto_2024-03-03_17-13-56-438x360.jpg 438w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/Bildschirmfoto_2024-03-03_17-13-56-207x170.jpg 207w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/Bildschirmfoto_2024-03-03_17-13-56.jpg 1028w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>In dieser Installation habe ich auch die Xbox-Pakete entfernt, wie im vorherigen Beispiel demonstriert. Im Startmen\u00fc werden daher keine Anwendungen zur Xbox angezeigt:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/2024-03-03_21-17.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1012\" height=\"763\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/2024-03-03_21-17.png\" alt=\"\" class=\"wp-image-12745\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/2024-03-03_21-17.png 1012w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/2024-03-03_21-17-300x226.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/2024-03-03_21-17-768x579.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/2024-03-03_21-17-477x360.png 477w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/03\/2024-03-03_21-17-225x170.png 225w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/a><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\">Weiteres Vorgehen<\/h2>\n<p>Weitere Anpassungen sind m\u00f6glich: Beispielsweise l\u00e4sst sich die Registry aus dem Abbild laden und anpassen. Auch Systemkomponenten, die nicht \u00fcber den App-Store bereitgestellt werden, k\u00f6nnt ihr aus dem System verbannen. Dazu z\u00e4hlen Funktionen wie die Handschrift-erkennung, Text zu Sprache, Schrittaufzeichnung und weitere, die viele wohl gar nicht verwenden.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-powershell\" data-line=\"\">dism \/image:$installWim \/Get-Packages | Select-String -Pattern &quot;~&quot; | ForEach-Object -Process {$_.ToString().Split(&#039;:&#039;)[1].Trim()}<\/code><\/pre>\n<p>Wie bei den Appx-Paketen auch, enthalten diese Pakete detaillierte Versionsinfos und man kann diese auf unerw\u00fcnschte Filtern. F\u00fcr eine \u00fcbersichtliche Ausgabe l\u00e4sst sich die Ausgabe des Remove-Package Befehls nach <code class=\"\" data-line=\"\">$null<\/code> umleiten &#8211; dies ist vergleichbar mit \/dev\/null von GNU\/Linux.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-powershell\" data-line=\"\">$packages = (dism \/image:$installWim \/Get-Packages | Select-String -Pattern &quot;~&quot; | ForEach-Object -Process {$_.ToString().Split(&#039;:&#039;)[1].Trim()})\n$packages | Select-String -pattern &#039;StepsRecorder|WordPad|MsPaint|Hello\\-Face|InternetExplorer|QuickAssist|TabletPCMath&#039; | % { write-host &quot;Entferne $_&quot;; dism \/image:$installWim \/Remove-Package \/PackageName:$_ &gt;$null }<\/code><\/pre>\n<p>Sobald neue Installationsmedien erscheinen, m\u00fcsst ihr die neue ISO herunterladen und testen. Je nachdem, was Microsoft ge\u00e4ndert hat, funktioniert manches m\u00f6glicherweise nicht mehr bzw. muss ebenfalls angepasst werden. Daf\u00fcr macht es Sinn, sich ein Skript zu schreiben. Das erleichtert und beschleunigt mehrere Durchl\u00e4ufe nicht nur ungemein &#8211; insbesondere bei gr\u00f6\u00dferen Anpassungen. Man hat damit zudem automatisch dokumentiert, was genau ver\u00e4ndert wurde.<\/p>\n<h2 class=\"wp-block-heading\">Quellen<\/h2>\n<ol class=\"wp-block-footnotes\">\n<li id=\"6b7bb385-0291-4817-a1d5-3fca43c0a5d2\">https:\/\/www.microsoft.com\/de-de\/software-download\/windows10 <a href=\"#6b7bb385-0291-4817-a1d5-3fca43c0a5d2-link\" aria-label=\"Zur Fu\u00dfnotenreferenz 1 navigieren\">\u21a9\ufe0e<\/a><\/li>\n<li id=\"88f27ac8-a3df-42fb-8534-de0557135bbb\">https:\/\/www.microsoft.com\/de-de\/software-download\/windows11 <a href=\"#88f27ac8-a3df-42fb-8534-de0557135bbb-link\" aria-label=\"Zur Fu\u00dfnotenreferenz 2 navigieren\">\u21a9\ufe0e<\/a><\/li>\n<li id=\"f17c33e4-6007-4dc9-9560-97b1f807914f\">https:\/\/learn.microsoft.com\/de-de\/windows-hardware\/get-started\/adk-install <a href=\"#f17c33e4-6007-4dc9-9560-97b1f807914f-link\" aria-label=\"Zur Fu\u00dfnotenreferenz 3 navigieren\">\u21a9\ufe0e<\/a><\/li>\n<li id=\"478fa562-588f-47ef-a6e0-944bf1aeaa42\">https:\/\/www.heise.de\/select\/ct\/2018\/18\/1535265216281441 <a href=\"#478fa562-588f-47ef-a6e0-944bf1aeaa42-link\" aria-label=\"Zur Fu\u00dfnotenreferenz 4 navigieren\">\u21a9\ufe0e<\/a><\/li>\n<li id=\"759295cb-7e40-4260-b241-49d28be14531\">https:\/\/learn.microsoft.com\/de-de\/windows-hardware\/manufacture\/desktop\/oscdimg-command-line-options?view=windows-10 <a href=\"#759295cb-7e40-4260-b241-49d28be14531-link\" aria-label=\"Zur Fu\u00dfnotenreferenz 5 navigieren\">\u21a9\ufe0e<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft stellt seit einiger Zeit offizielle ISO-Abbilder von Windows 10\/11 bereit. Spannend sind die M\u00f6glichkeiten, welche bei propriet\u00e4rer Software verbleiben, um das Abbild ver\u00e4ndern zu k\u00f6nnen. Den besten Grund dazu hat Microsoft selbst geliefert: Blotware. Windows wird mit immer mehr Dingen zugem\u00fcllt, die es unn\u00f6tig aufbl\u00e4hen &#8211; die Gr\u00f6\u00dfe einer DVD hat es l\u00e4ngst \u00fcberschritten. &#8230;<\/p>\n","protected":false},"author":5,"featured_media":14509,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"[{\"content\":\"https:\/\/www.microsoft.com\/de-de\/software-download\/windows10\",\"id\":\"6b7bb385-0291-4817-a1d5-3fca43c0a5d2\"},{\"content\":\"https:\/\/www.microsoft.com\/de-de\/software-download\/windows11\",\"id\":\"88f27ac8-a3df-42fb-8534-de0557135bbb\"},{\"content\":\"https:\/\/learn.microsoft.com\/de-de\/windows-hardware\/get-started\/adk-install\",\"id\":\"f17c33e4-6007-4dc9-9560-97b1f807914f\"},{\"content\":\"https:\/\/www.heise.de\/select\/ct\/2018\/18\/1535265216281441\",\"id\":\"478fa562-588f-47ef-a6e0-944bf1aeaa42\"},{\"content\":\"https:\/\/learn.microsoft.com\/de-de\/windows-hardware\/manufacture\/desktop\/oscdimg-command-line-options?view=windows-10\",\"id\":\"759295cb-7e40-4260-b241-49d28be14531\"}]"},"categories":[91],"tags":[],"class_list":["post-12724","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-windows"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/12724","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=12724"}],"version-history":[{"count":21,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/12724\/revisions"}],"predecessor-version":[{"id":14510,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/12724\/revisions\/14510"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/14509"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=12724"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=12724"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=12724"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}