Custom Windows-10-ISO bauen (in kontinuierlicher Verbesserung) - Ausgabe 2019
Einleitung:
Gültigkeit bis Build 1909
Guten Tag liebe Kollegen. Es ist schon etwas länger her, dass ich einen Beitrag verfasst habe, aber vielleicht ergeht es Euch auch so, dass man sich ein neues ISO von Windows 10 runterlädt und anstatt nach der Installation Bloatware, überflüssige Appx, OneDrive und andere nicht benötigte Dienste zu entfernen oder zu deaktiveren, dies lieber bereits in der ISO so vorliegen haben wollen.
Ich beschreibe den Weg so gut es geht. Der Grund, warum ich es so mache: Ich habe mit keinem von Microsoft vorgegebenen Werkzeug einen Weg gefunden, ein gewisses Unbloating von W10 hinzubekommen.
Zwei Wege sind möglich:
1. Weg - Kompatibel mit Windows-Updates
1.
Mittels Media-Creation-Tool von https://www.microsoft.com/de-de/software-download/windows10 eine ISO der aktuellen Build erstellen, vorzugsweise 32Bit und 64Bit.
2.
Mit 7-Zip die ISO öffnen.
In der ISO (wenn 32Bit und 64Bit kombiniert) muss die Datei install.esd entpackt werden. Diese gibt es zweimal:
ISO-Datei\x64\sources\install.esd
ISO-Datei\x86\sources\install.esd
Pro install.esd folgende Schritte durchlaufen:
1.
Auflisten aller Indizes und Editionen in der Datei:
2.
Gewünschte Edition exportieren
3.
Wim-Image mounten und customizen:
3.1. OneDrive entfernen
3.1.1.
Verlinkung aus Startmenü löschen:
3.1.2.
Löschen des OneDrive-Installers <mountdir>\Windows\SysWOW64\OneDriveSetup.exe
Über Powershell im Adminmode!
#Powershell Vorbereitung
Zugriff auf onedrivesetup.exe herstellen und die Datei löschen
bei deutschem 64Bit-Windows:
bei englischem 64Bit-Windows:
Löschen der Datei bei 64Bit-Edition
Löschen der Datei bei 32Bit-Edition
3.1.3.
Löschen der Registrierungseinträge
Das kann natürlich auch im Registrierungseditor direkt gemacht werden.
3.1.4.
Suchbox in der Taskleiste abschalten, wenn Cortana blockiert werden soll
Das kann natürlich auch im Registrierungseditor direkt gemacht werden.
3.2.
APPX-Pakete entfernen (Anzeigen und zum Löschen Selektieren)
Es gibt keine Probleme, wenn man den Windows-Store ebenfalls löscht, aber eins muss klar sein: Er lässt sich nicht mehr installieren!
3.3.
Kacheln aus dem Startmenü entfernen für alle
Zur vorhandenen Datei <mountdir>\Users\Default\appdata\Local\Microsoft\Windows\Shell\DefaultLayouts.xml kommt eine namens LayoutModification.xml.
3.4.
Features aktivieren oder deaktivieren
Auflisten:
Aktivieren: (wenn externe Quellen notwendig):
Deaktivieren:
3.5.
Windows-Updates integrieren
3.5.1.
Geeignete kumulative Updates von Microsoft als MSU-Datei herunterladen (nach Datum sortieren)
https://www.catalog.update.microsoft.com/Search.aspx?q=cumulative+1903 (1903 durch aktuelle Build-Nr ersetzen)
3.5.2.
Update(s) anwenden auf Image
Einzel-Befehl, der alle Updates aus einem Verzeichnis anwendet:
3.6.
Unliebsame SystemApps deaktivieren
Dazu kann man unter <mountdir>\windows\SystemApps die gewünschten App-Ordner suchen und einfach umbenennen.
Ich empfehle zur Nachvollziehbarkeit einfach mit einem "_BLOCKIERT" den Verzeichnisnamen zu suffixen.
Achtung: Es gibt Apps, die man so nicht sperren sollte, da sich das System sonst nicht installieren oder hochfahren lässt, aber Edge und Cortana wird man so los.
4.
Änderungen am Image bestätigen und Image schließen (zurück in geladene WIM-Datei schreiben)
Änderungen in WIM-File zurückschreiben.
Abbildbereitstellung aufheben ohne Änderungen (erneut) zurückzuschreiben. Der Vorgang ist zweigeteilt, damit man sehen kann, dass Commit und Aufheben getrennt funktionieren.
Eine mögliche Fehlermeldung weißt bei einem kombinierten Vorgang nicht die Ursache aus und "hält" einen Commit für wahrscheinlich erfolgreich.
Aufräumen
5.
WIM-Datei zurück in ESD-Datei konvertieren (dauert länger!)
Das ist eigentlich nicht erforderlich. Das Bootmedium akzeptiert install.esd oder install.wim. Eine von den beiden muss im richtigen Ordner liegen.
FAZIT: Dieser Weg ist von mir mit der Build 1903 getestet und kompatibel mit Windows-Updates. Der Components- und Feature-Speicher bleibt intakt. Kumulative Updates zerschießen das .NET Framework nicht mehr.
=============================================================================================================================
2. Weg - Inkompatibel mit Windows-Updates
Ein Wort der Warnung voraus!
Dieser Weg erlaubt ein massives Unbloating von Windows 10. Es gibt Kollegen, die treiben es soweit, dass Windows auf unter 2GB schrumpft und dabei noch updatefähig ist. Auch bei diesem Weg ist es möglich, sehr viel "Ballast" aus dem Installationsmaterial zu entfernen und dennoch ein installier- und betriebsfähiges Windows zu erhalten, aber was ich derzeit nicht lösen konnte, ist das Problem, dass kumulative Updates die Instanz regelrecht zerschießen.
Es kann also im einfachen Fall dazu kommen, dass .NET-Framework nicht mehr anwendbar und auch nicht mehr reparierbar ist, es kann aber auch sein, dass nach einem kumulativen Update, das Windows überhaupt nicht mehr startet.
Ich kann also nur dazu raten, nach einer erfolgreichen Installation einen Updateblocker einzurichten. Ich erwähne das nur der Vollständigkeit halber.
1.
Mittels Media-Creation-Tool von https://www.microsoft.com/de-de/software-download/windows10 eine ISO der aktuellen Build erstellen, vorzugsweise 32Bit und 64Bit.
2.
Mit 7-Zip die ISO öffnen.
In der ISO (wenn 32Bit und 64Bit kombiniert) muss die Datei install.esd entpackt werden. Diese gibt es zweimal:
ISO-Datei\x64\sources\install.esd
ISO-Datei\x86\sources\install.esd
Pro install.esd folgende Schritte durchlaufen:
1.
Auflisten aller Indizes und Editionen in der Datei:
2.
Gewünschte Edition exportieren
3.
Wim-Image mounten und customizen:
3.1.
APPX-Pakete entfernen (Anzeigen und zum Löschen Selektieren)
3.2.
Kacheln aus dem Startmenü entfernen für alle
Zur vorhandenen Datei <mountdir>\Users\Default\appdata\Local\Microsoft\Windows\Shell\DefaultLayouts.xml kommt eine namens LayoutModification.xml.
3.3.
Features aktivieren oder deaktivieren
Auflisten:
Aktivieren: (wenn externe Quellen notwendig):
Deaktivieren:
x64-Liste:
Printing-XPSServices-Features
SearchEngine-Client-Package
WorkFolders-Client
MediaPlayback
WindowsMediaPlayer
Internet-Explorer-Optional-amd64
Printing-Foundation-Features
FaxServicesClientPackage
Printing-Foundation-InternetPrinting-Client
Printing-PrintToPDFServices-Features
Windows-Defender-Default-Definitions
MSRDC-Infrastructure
NetFx4-AdvSrvs
WCF-Services45
WCF-TCP-PortSharing45
SmbDirect
MicrosoftWindowsPowerShellV2Root
MicrosoftWindowsPowerShellV2
Microsoft-Windows-NetFx3-OC-Package
Microsoft-Windows-NetFx4-US-OC-Package
Microsoft-Windows-Client-EmbeddedExp-Package
Microsoft-Windows-NetFx3-WCF-OC-Package
Microsoft-Windows-NetFx4-WCF-US-OC-Package
x86-Liste:
Printing-PrintToPDFServices-Features
Windows-Defender-Default-Definitions
Printing-XPSServices-Features
SearchEngine-Client-Package
MSRDC-Infrastructure
WorkFolders-Client
NetFx4-AdvSrvs
WCF-Services45
WCF-TCP-PortSharing45
Internet-Explorer-Optional-x86
Printing-Foundation-Features
FaxServicesClientPackage
Printing-Foundation-InternetPrinting-Client
MicrosoftWindowsPowerShellV2Root
MicrosoftWindowsPowerShellV2
Microsoft-Windows-NetFx3-OC-Package
Microsoft-Windows-NetFx4-US-OC-Package
Microsoft-Windows-Client-EmbeddedExp-Package
Microsoft-Windows-NetFx3-WCF-OC-Package
Microsoft-Windows-NetFx4-WCF-US-OC-Package
3.4.
Windows-Updates integrieren
Einzel-Befehl, der alle Updates aus einem Verzeichnis anwendet:
3.5.
Windows Feature- und Components-Speicher umschreiben, damit alle Einträge sichtbar werden und zwar wirklich alle.
Dazu kann ein Tool namens install_Wim_tweak.exe verwendet werden, oder untenstehendes Script.
Mit dem Befehl:
Dies ist das Script eines Kollegen. Wichtig ist, dass die Registry des Wim-Image eingehängt ist und im Script der Pfad angepasst ist. Der Grundgedanke ist, dass install_wim_tweak alle Packages sichtbar macht. Dies geschieht so:
Das Programm hängt nach Übergeben des Mount-Pfades die Registry des Images ein und greift auf den Schlüssel HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\ zu. In jedem Unterschlüssel dazu befindet sich ein DWORD_Wert mit Namen Visibility. Steht dieser auf 1, ist das Paket sichtbar, steht er auf 2, taucht es nicht auf. Die Software ändert bei allen Paketen diesen Wert auf 1 und erstellt eine zusätzliche Variable DefVis, die den originalen Wert nochmals enthält.
Das Script hier tut in etwa das gleiche, nur dass hier die Möglichkeit gegeben ist, nach gewissen Schlüsselwörtern zu filtern, so dass nicht der komplette Paketbaum umgedreht wird. Ich kann derzeit nicht ausschließen, dass die Visibility noch eine andere Bedeutung haben kann, als nur das "Verstecken", deswegen werde ich händisch die Schlüssel ändern, die OneDrive enthalten. Das Script ist derzeit für eine Online-Instanz ausgelegt, nicht für die Bearbeitung eines WIM-Images. Ich hab es mal für die Spezialisten reingesetzt.
Mit folgendem Befehl kann man dann alle sichtbar gemachten Windows-Packages, die bereits "installed" sind, entfernen (z.B. OneDrive, denn das ist versteckt!).
Vorsicht! Das geschieht ohne Rücksicht auf Verluste! Es folgen keine Sicherheitsabfragen und entfernte Pakete lassen sich ggf. nicht mehr installieren.
3.6.
Abschalten bestimmter Dienste (es handelt sich um versteckte Dienste, die pro Benutzer anscheinend einen Unterprozess als Dienst registrieren und starten)
Warnung: Durch das Ausschalten mindestens einer dieser Dienste legt man das primäre Startmenü (Linksklick) lahm. Es öffnet sich nicht mehr. Rechtsklick funktioniert weiterhin.
Eine Ersetzung durch ClassicShell oder OpenShell oder einen anderen Startmenüersatz schafft Abhilfe.
3.7.
Unliebsame SystemApps deaktivieren
Dazu kann man unter <mountdir>\windows\SystemApps die gewünschten App-Ordner suchen und einfach umbenennen.
Ich empfehle zur Nachvollziehbarkeit einfach mit einem "_BLOCKIERT" den Verzeichnisnamen zu suffixen.
Achtung: Es gibt Apps, die man so nicht sperren sollte, da sich das System sonst nicht installieren oder hochfahren lässt, aber Edge und Cortana wird man so los.
4.
Änderungen am Image bestätigen und Image schließen (zurück in geladene WIM-Datei schreiben)
Änderungen in WIM-File zurückschreiben.
Abbildbereitstellung aufheben ohne Änderungen (erneut) zurückzuschreiben. Der Vorgang ist zweigeteilt, damit man sehen kann, dass Commit und Aufheben getrennt funktionieren.
Eine mögliche Fehlermeldung weißt bei einem kombinierten Vorgang nicht die Ursache aus und "hält" einen Commit für wahrscheinlich erfolgreich.
Aufräumen
5.
WIM-Datei zurück in ESD-Datei konvertieren (dauert länger!)
Das ist eigentlich nicht erforderlich. Das Bootmedium akzeptiert install.esd oder install.wim. Eine von den beiden muss im richtigen Ordner liegen.
FAZIT: Dieser Weg ist von mir mit der Build 1903 getestet und nicht kompatibel mit Windows-Updates. Der Components- und Feature-Speicher wird durch kumulative Updates zerschossen. Bei mir funktionierte danach das .NET Framework nicht mehr.
=============================================================================================================================
=============================================================================================================================
Ergänzung zu beiden Wegen
Dies sei erwähnt, weil ich selbst drüber stolpere. Wer die Build 1903 nutzt, wird feststellen, dass z.B. das Snipping-Tool durch eine bereits provisionierte APPX namens
"Ausschneiden und Skizzieren" wohl in naher Zukunft ersetzt werden soll.
Ich habe den Eindruck, dass Microsoft auf ähnlichem Wege auch mit anderen systeminternen Tools verfahren will. Hier nenne ich mal den Remotedesktopclient.
In der Build 1903 liegt er in Version 10.0 vor. Als APPX für Windows hat er bereits Version 10.1 und damit eine für mich interessante Fehlerbereinigung.
Nur wie verteilt man solch eine APPX, wenn man die Images so baut, dass der Microsoft-Store nicht mehr enthalten ist?
"Offline" ist die Antwort. Also braucht es einen Weg, wie man an ein offline verfügbares APPXBundle von MSTSC herankommt und dieses auch ausrollen kann.
Das Herankommen geht aus meiner Sicht nur so:
Man braucht einen Login zum Microsoft Store for Business: https://businessstore.microsoft.com/
Unter "Verwalten" gibt es "Einstellungen" und dort die Möglichkeit unter "Einkaufserfahrung" die Offline-Lizenzen einzuschalten.
Wenn man dann nach Remotedesktop sucht, kann man die APPX als APPXBundle herunterladen.
Die APPXBundle sollte sich mittels
oder
ins Image integrieren lassen, wenn sie nicht bereits provisioniert ist.
Hinweis: Die obigen Befehle sind derzeit noch unvollständig. Ich ergänze die Parameter, sobald ich testen konnte.
=============================================================================================================================
=============================================================================================================================
Notizblock
1.
Mittels Media-Creation-Tool von https://www.microsoft.com/de-de/software-download/windows10 eine ISO der aktuellen Build erstellen, vorzugsweise 32Bit und 64Bit.
2.
Mit 7-Zip die ISO öffnen.
In der ISO (wenn 32Bit und 64Bit kombiniert) muss die Datei install.esd entpackt werden. Diese gibt es zweimal:
ISO-Datei\x64\sources\install.esd
ISO-Datei\x86\sources\install.esd
Pro install.esd folgende Schritte durchlaufen:
1.
Auflisten aller Indizes und Editionen in der Datei:
2.
Gewünschte Edition exportieren
4.
Änderungen am Image bestätigen und Image schließen (zurück in geladene WIM-Datei schreiben)
Änderungen in WIM-File zurückschreiben.
Abbildbereitstellung aufheben ohne Änderungen (erneut) zurückzuschreiben. Der Vorgang ist zweigeteilt, damit man sehen kann, dass Commit und Aufheben getrennt funktionieren.
Eine mögliche Fehlermeldung weißt bei einem kombinierten Vorgang nicht die Ursache aus und "hält" einen Commit für wahrscheinlich erfolgreich.
Aufräumen
5. WIM-Datei zurück in ESD-Datei konvertieren (dauert länger!)
6. ESD-Datei in ISO integrieren.
Das geht mit einem von zwei mir bekannten Tools: PowerISO und UltraISO. Beide Tools kosten etwas Geld, sind es aber wert.
KORREKTUREN UND VERBESSERUNGEN zu obigen Punkten (Stand 06.08.2019)
3.1. und 3.2.
Die Entfernung unliebsamer Dinge wie OneDrive lässt sich komfortabler umsetzen. Allerdings wird dazu derzeit eine Software namens install_wim_tweak benötigt.
Diese dient nur einem Zweck: Die Sichtbarmachung von Packages, die im Registry-Key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\ des gemounteten WIM-Images gespeichert sind.
Ich konnte noch nicht analysieren, welche Attribute ausschlaggebend sind, dass Pakete (wie z.B. OneDrive) versteckt (Hidden) sind und andere nicht.
Mit dem Befehl:
werden aber die Packages sichtbar gemacht, so dass mittels
alle gewünschten provisionierten APPX-Packages, die man loswerden will, komfortabel ausgewählt und entfernt werden können und mittels
selbiges mit Windows-Packages (so unter anderem auch OneDrive) geschehen kann.
Der untere Befehl listet nur die Pakete auf, die im Status bereits "installed" haben.
Ein Wort der Warnung!
install_wim_Tweak in obiger Anwendung macht weitgehend alle Pakete sicht- und entfernbar. Das kann übel ins Auge gehen, wenn man das falsche Paket rauswirft.
Es sollte in einer Laborumgebung getestet werden, bevor man ein Produktivimage baut.
Ich möchte install_wim_tweak auch durch ein Script ersetzen, bei dem man besser erkennt, was es tut.
3.3.
Der im obigen Abschnitt 3.3. beschriebene Vorgang ist nicht korrekt. Die vorhandene Datei DefaultLayouts.xml verändert man nicht.
Der beschriebene Dateiinhalt muss in einer Datei namens LayoutModification.xml im gleichen Verzeichnis gespeichert werden.
Ergänzung: Interessanterweise funktioniert das Startmenü immernoch nicht. Derzeit nehme ich an, dass es etwas mit den deaktivierten Diensten unter 3.6. zu tun haben könnte.
Genauso funktioniert die rechte Maustaste nicht korrekt beim Klick auf eine Datei.
KORREKTUREN UND VERBESSERUNGEN zu obigen Punkten (Stand 09.08.2019)
Neuer Punkt
3.7. Entfernung von Cortana und anderem unliebsamen Dreck
Das gemountete Image kann mittels Windowsexplorer durchgegangen werden:
Im Verzeichnis c:\<mountpfad>\windows\systemapps und im Verzeichnis C:\<mountpfad>\Prgram Files\WindowsApps (und zästzlich eventuell unter C:\Users\username\AppData\Local\Packages) befindet sich so mancher Kram, der einfach gelöscht werden kann, wenn
Ich habe mir so Edge und Cortana noch vor Installation vom Hals geschafft. Allerdings sei folgendes erwähnt:
Speziell im Ordner SystemApps ist Vorsicht geboten. Es gibt Ordner, die man nicht umbennen oder löschen sollte, weil Windows danach nicht funktioniert.
Bei Cortana und Edge kann ich in der 1903er Build aber sagen, dass keine Probleme auftreten, außer dass das "Suchen"-Feld in der Taskleiste und Suchen im Startmenü nicht funktionieren wird.
Eine hilfreiche Seite: https://www.askvg.com/windows-10-tip-remove-cortana-microsoft-edge-conta ...
KORREKTUREN UND VERBESSERUNGEN zu obigen Punkten (Stand 13.08.2019)
Neuer Punkt 3.7 - Ergänzung:
Nach der Entfernung von Cortana funktioniert die Suche nicht mehr. Weder die Suche nach Startmenü-Inhalten noch die Suche in der Taskleisten-Suchbox können genutzt werden.
Da die Taskleisten-Suchbox überflüssig wird, kann man sie auch von vorne herein entfernen. Das sollte wie folgt für alle Nutzer möglich sein.
Punkt 3.6.
Das Abschalten der oben erwähnten Dienste sorgt dafür, dass das Startmenü (Linke Maustaste!) nicht mehr funktioniert. Das mit rechter Maustaste zu öffnende Menü funktioniert noch.
Welcher Dienst daran beteiligt ist, vermag ich nicht zu sagen derzeit. Ich lasse also alle aktiv.
KORREKTUREN UND VERBESSERUNGEN zu obigen Punkten (Stand 20.08.2019)
Mir ist bei Tests folgendes aufgefallen: Ein kumulatives Update (hier August 2019) zerschießt das vorinstallierte .NET-Framework.
Ich habe es mehrfach wiederholt unter folgenden Bedingungen:
- OneDrive entfernt
- Appx alle bis auf Paint entfernt
- Startlayout angepasst
- Cortana und Edge entfernt
Das Ergebnis ist immer gleich: Die Installation klappt reibungslos und das .NET Framework ist intakt danach (Getestet über Powershell; Ordner C:\Windows\Microsoft.Net untersucht - >600MB).
Nachdem das kumulative Update installiert hat, öffnet sich die Powershell nicht mehr und der untersuchte .NET-Ordner ist nur noch ca. 40MB groß.
FAZIT: Ein customized Image scheint von kumulativen Updates nicht erwartet zu werden. Also muss eine Windows-Update-Blockierung her.
Schade eigentlich.
KORREKTUREN UND VERBESSERUNGEN zu obigen Punkten (Stand 22.08.2019)
Dies ist das Script eines Kollegen, welches install_wim_tweak ablösen könnte. Wichtig ist, dass die Registry des Wim-Image eingehängt ist und im Script der Pfad angepasst ist.
Der Grundgedanke ist, dass install_wim_tweak alle Packages sichtbar macht. Dies geschieht so:
Das Programm hängt nach Übergeben des Mount-Pfades die Registry des Images ein und greift auf den Schlüssel
HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\
zu.
In jedem Unterschlüssel dazu befindet sich ein DWORD_Wert mit Namen Visibility. Steht dieser auf 1, ist das Paket sichtbar, steht er auf 2, taucht es nicht auf.
Die Software ändert bei allen Paketen diesen Wert auf 1 und erstellt eine zusätzliche Variable DefVis, die den originalen Wert nochmals enthält.
Das Script hier tut in etwa das gleiche, nur dass hier die Möglichkeit gegeben ist, nach gewissen Schlüsselwörtern zu filtern, so dass nicht der komplette Paketbaum
umgedreht wird. Ich kann derzeit nicht ausschließen, dass die Visibility noch eine andere Bedeutung haben kann, als nur das "Verstecken", deswegen werde ich händisch
die Schlüssel ändern, die OneDrive enthalten.
Weitere interessante Scripts des Kollegen: https://github.com/W4RH4WK/Debloat-Windows-10
Gültigkeit bis Build 1909
Guten Tag liebe Kollegen. Es ist schon etwas länger her, dass ich einen Beitrag verfasst habe, aber vielleicht ergeht es Euch auch so, dass man sich ein neues ISO von Windows 10 runterlädt und anstatt nach der Installation Bloatware, überflüssige Appx, OneDrive und andere nicht benötigte Dienste zu entfernen oder zu deaktiveren, dies lieber bereits in der ISO so vorliegen haben wollen.
Ich beschreibe den Weg so gut es geht. Der Grund, warum ich es so mache: Ich habe mit keinem von Microsoft vorgegebenen Werkzeug einen Weg gefunden, ein gewisses Unbloating von W10 hinzubekommen.
Zwei Wege sind möglich:
1. Weg - Kompatibel mit Windows-Updates
1.
Mittels Media-Creation-Tool von https://www.microsoft.com/de-de/software-download/windows10 eine ISO der aktuellen Build erstellen, vorzugsweise 32Bit und 64Bit.
2.
Mit 7-Zip die ISO öffnen.
In der ISO (wenn 32Bit und 64Bit kombiniert) muss die Datei install.esd entpackt werden. Diese gibt es zweimal:
ISO-Datei\x64\sources\install.esd
ISO-Datei\x86\sources\install.esd
Pro install.esd folgende Schritte durchlaufen:
1.
Auflisten aller Indizes und Editionen in der Datei:
dism /Get-WimInfo /WimFile:<Pfad zur Datei>\install.esd
2.
Gewünschte Edition exportieren
dism /Export-Image /SourceImageFile:<Pfad zur Datei>\install.esd /SourceIndex:5 /DestinationImageFile:<Pfad zur Datei>\install.wim /Compress:Maximum
3.
Wim-Image mounten und customizen:
dism /Mount-wim /WimFile:<Pfad zur Datei>\install.wim /index:1 /MountDir:<mountdir>
3.1. OneDrive entfernen
3.1.1.
Verlinkung aus Startmenü löschen:
cd <mountdir>\Users\Default\appdata\Roaming\Microsoft\Windows\Start Menu\Programs
del .\OneDrive.lnk
3.1.2.
Löschen des OneDrive-Installers <mountdir>\Windows\SysWOW64\OneDriveSetup.exe
Über Powershell im Adminmode!
takeown /F <mountdir>\Windows\SysWOW64\OneDriveSetup.exe /A
#Powershell Vorbereitung
Install-Module NTFSSecurity (falls Add-NTFSAccess nicht verfügbar ist | nur einmal am Computer erforderlich)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Import-Module NTFSSecurity
Zugriff auf onedrivesetup.exe herstellen und die Datei löschen
bei deutschem 64Bit-Windows:
Add-NTFSAccess -Path "<mountdir>\Windows\SysWOW64\onedrivesetup.exe" -Account "Administratoren" -AccessRights FullControl
Add-NTFSAccess -Path "<mountdir>\Windows\SysWOW64\onedrivesetup.exe" -Account "BUILTIN\Administrators" -AccessRights FullControl
Löschen der Datei bei 64Bit-Edition
Remove-Item <mountdir>\Windows\SysWOW64\onedrivesetup.exe
Remove-Item <mountdir>\Windows\System32\onedrivesetup.exe
3.1.3.
Löschen der Registrierungseinträge
reg load HKEY_LOCAL_MACHINE\WIM <mountdir>\Users\Default\ntuser.dat
reg query "HKEY_LOCAL_MACHINE\WIM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
reg delete "HKEY_LOCAL_MACHINE\WIM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v OneDriveSetup /f
reg unload HKEY_LOCAL_MACHINE\WIM
Das kann natürlich auch im Registrierungseditor direkt gemacht werden.
3.1.4.
Suchbox in der Taskleiste abschalten, wenn Cortana blockiert werden soll
reg load HKEY_LOCAL_MACHINE\WIM <mountdir>\Users\Default\ntuser.dat
reg add HKEY_LOCAL_MACHINE\WIM\SOFTWARE\Microsoft\Windows\CurrentVersion\Search /v SearchboxTaskbarMode /t REG_DWORD /d 0 /f
reg unload HKEY_LOCAL_MACHINE\WIM
Das kann natürlich auch im Registrierungseditor direkt gemacht werden.
3.2.
APPX-Pakete entfernen (Anzeigen und zum Löschen Selektieren)
Get-AppxProvisionedPackage -Path C:\mount | Out-GridView -PassThru | Remove-AppxProvisionedPackage
3.3.
Kacheln aus dem Startmenü entfernen für alle
Zur vorhandenen Datei <mountdir>\Users\Default\appdata\Local\Microsoft\Windows\Shell\DefaultLayouts.xml kommt eine namens LayoutModification.xml.
<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6" />
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
3.4.
Features aktivieren oder deaktivieren
Auflisten:
dism /Image:<mountdir> /Get-Features
dism /Image:<mountdir> /Enable-Feature /FeatureName:NetFx3 /Source:<sourcepath>\sxs /LimitAccess
dism /Image:<mountdir> /Disable-Feature /FeatureName:NetFx3
dism /Image:c:\m /Disable-Feature /FeatureName:
3.5.
Windows-Updates integrieren
3.5.1.
Geeignete kumulative Updates von Microsoft als MSU-Datei herunterladen (nach Datum sortieren)
https://www.catalog.update.microsoft.com/Search.aspx?q=cumulative+1903 (1903 durch aktuelle Build-Nr ersetzen)
3.5.2.
Update(s) anwenden auf Image
Einzel-Befehl, der alle Updates aus einem Verzeichnis anwendet:
dism /image:<mountdir> /add-package /Packagepath:<updatedir>
3.6.
Unliebsame SystemApps deaktivieren
Dazu kann man unter <mountdir>\windows\SystemApps die gewünschten App-Ordner suchen und einfach umbenennen.
Ich empfehle zur Nachvollziehbarkeit einfach mit einem "_BLOCKIERT" den Verzeichnisnamen zu suffixen.
Achtung: Es gibt Apps, die man so nicht sperren sollte, da sich das System sonst nicht installieren oder hochfahren lässt, aber Edge und Cortana wird man so los.
4.
Änderungen am Image bestätigen und Image schließen (zurück in geladene WIM-Datei schreiben)
Änderungen in WIM-File zurückschreiben.
Dism /Commit-Image /MountDir:<mountdir>
Eine mögliche Fehlermeldung weißt bei einem kombinierten Vorgang nicht die Ursache aus und "hält" einen Commit für wahrscheinlich erfolgreich.
Dism /UnMount-wim /MountDir:<mountdir> /discard
Dism /Cleanup-Wim
5.
WIM-Datei zurück in ESD-Datei konvertieren (dauert länger!)
Das ist eigentlich nicht erforderlich. Das Bootmedium akzeptiert install.esd oder install.wim. Eine von den beiden muss im richtigen Ordner liegen.
dism /export-image /SourceImageFile:"<Pfad zur Datei>\install.wim" /SourceIndex:1 /DestinationImageFile:"<Pfad zur Datei>\install.esd" /Compress:recovery /CheckIntegrity
FAZIT: Dieser Weg ist von mir mit der Build 1903 getestet und kompatibel mit Windows-Updates. Der Components- und Feature-Speicher bleibt intakt. Kumulative Updates zerschießen das .NET Framework nicht mehr.
=============================================================================================================================
2. Weg - Inkompatibel mit Windows-Updates
Ein Wort der Warnung voraus!
Dieser Weg erlaubt ein massives Unbloating von Windows 10. Es gibt Kollegen, die treiben es soweit, dass Windows auf unter 2GB schrumpft und dabei noch updatefähig ist. Auch bei diesem Weg ist es möglich, sehr viel "Ballast" aus dem Installationsmaterial zu entfernen und dennoch ein installier- und betriebsfähiges Windows zu erhalten, aber was ich derzeit nicht lösen konnte, ist das Problem, dass kumulative Updates die Instanz regelrecht zerschießen.
Es kann also im einfachen Fall dazu kommen, dass .NET-Framework nicht mehr anwendbar und auch nicht mehr reparierbar ist, es kann aber auch sein, dass nach einem kumulativen Update, das Windows überhaupt nicht mehr startet.
Ich kann also nur dazu raten, nach einer erfolgreichen Installation einen Updateblocker einzurichten. Ich erwähne das nur der Vollständigkeit halber.
1.
Mittels Media-Creation-Tool von https://www.microsoft.com/de-de/software-download/windows10 eine ISO der aktuellen Build erstellen, vorzugsweise 32Bit und 64Bit.
2.
Mit 7-Zip die ISO öffnen.
In der ISO (wenn 32Bit und 64Bit kombiniert) muss die Datei install.esd entpackt werden. Diese gibt es zweimal:
ISO-Datei\x64\sources\install.esd
ISO-Datei\x86\sources\install.esd
Pro install.esd folgende Schritte durchlaufen:
1.
Auflisten aller Indizes und Editionen in der Datei:
dism /Get-WimInfo /WimFile:<Pfad zur Datei>\install.esd
2.
Gewünschte Edition exportieren
dism /Export-Image /SourceImageFile:<Pfad zur Datei>\install.esd /SourceIndex:5 /DestinationImageFile:<Pfad zur Datei>\install.wim /Compress:Maximum
3.
Wim-Image mounten und customizen:
dism /Mount-wim /WimFile:<Pfad zur Datei>\install.wim /index:1 /MountDir:<mountdir>
3.1.
APPX-Pakete entfernen (Anzeigen und zum Löschen Selektieren)
Get-AppxProvisionedPackage -Path C:\mount | Out-GridView -PassThru | Remove-AppxProvisionedPackage
3.2.
Kacheln aus dem Startmenü entfernen für alle
Zur vorhandenen Datei <mountdir>\Users\Default\appdata\Local\Microsoft\Windows\Shell\DefaultLayouts.xml kommt eine namens LayoutModification.xml.
<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6" />
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
3.3.
Features aktivieren oder deaktivieren
Auflisten:
dism /Image:<mountdir> /Get-Features
dism /Image:<mountdir> /Enable-Feature /FeatureName:NetFx3 /Source:<sourcepath>\sxs /LimitAccess
dism /Image:<mountdir> /Disable-Feature /FeatureName:NetFx3
dism /Image:c:\m /Disable-Feature /FeatureName:
x64-Liste:
Printing-XPSServices-Features
SearchEngine-Client-Package
WorkFolders-Client
MediaPlayback
WindowsMediaPlayer
Internet-Explorer-Optional-amd64
Printing-Foundation-Features
FaxServicesClientPackage
Printing-Foundation-InternetPrinting-Client
Printing-PrintToPDFServices-Features
Windows-Defender-Default-Definitions
MSRDC-Infrastructure
NetFx4-AdvSrvs
WCF-Services45
WCF-TCP-PortSharing45
SmbDirect
MicrosoftWindowsPowerShellV2Root
MicrosoftWindowsPowerShellV2
Microsoft-Windows-NetFx3-OC-Package
Microsoft-Windows-NetFx4-US-OC-Package
Microsoft-Windows-Client-EmbeddedExp-Package
Microsoft-Windows-NetFx3-WCF-OC-Package
Microsoft-Windows-NetFx4-WCF-US-OC-Package
x86-Liste:
Printing-PrintToPDFServices-Features
Windows-Defender-Default-Definitions
Printing-XPSServices-Features
SearchEngine-Client-Package
MSRDC-Infrastructure
WorkFolders-Client
NetFx4-AdvSrvs
WCF-Services45
WCF-TCP-PortSharing45
Internet-Explorer-Optional-x86
Printing-Foundation-Features
FaxServicesClientPackage
Printing-Foundation-InternetPrinting-Client
MicrosoftWindowsPowerShellV2Root
MicrosoftWindowsPowerShellV2
Microsoft-Windows-NetFx3-OC-Package
Microsoft-Windows-NetFx4-US-OC-Package
Microsoft-Windows-Client-EmbeddedExp-Package
Microsoft-Windows-NetFx3-WCF-OC-Package
Microsoft-Windows-NetFx4-WCF-US-OC-Package
3.4.
Windows-Updates integrieren
Einzel-Befehl, der alle Updates aus einem Verzeichnis anwendet:
dism /image:<mountdir> /add-package /Packagepath:<updatedir>
3.5.
Windows Feature- und Components-Speicher umschreiben, damit alle Einträge sichtbar werden und zwar wirklich alle.
Dazu kann ein Tool namens install_Wim_tweak.exe verwendet werden, oder untenstehendes Script.
Mit dem Befehl:
install_wim_tweak /p <mountpath>
Dies ist das Script eines Kollegen. Wichtig ist, dass die Registry des Wim-Image eingehängt ist und im Script der Pfad angepasst ist. Der Grundgedanke ist, dass install_wim_tweak alle Packages sichtbar macht. Dies geschieht so:
Das Programm hängt nach Übergeben des Mount-Pfades die Registry des Images ein und greift auf den Schlüssel HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\ zu. In jedem Unterschlüssel dazu befindet sich ein DWORD_Wert mit Namen Visibility. Steht dieser auf 1, ist das Paket sichtbar, steht er auf 2, taucht es nicht auf. Die Software ändert bei allen Paketen diesen Wert auf 1 und erstellt eine zusätzliche Variable DefVis, die den originalen Wert nochmals enthält.
Das Script hier tut in etwa das gleiche, nur dass hier die Möglichkeit gegeben ist, nach gewissen Schlüsselwörtern zu filtern, so dass nicht der komplette Paketbaum umgedreht wird. Ich kann derzeit nicht ausschließen, dass die Visibility noch eine andere Bedeutung haben kann, als nur das "Verstecken", deswegen werde ich händisch die Schlüssel ändern, die OneDrive enthalten. Das Script ist derzeit für eine Online-Instanz ausgelegt, nicht für die Bearbeitung eines WIM-Images. Ich hab es mal für die Spezialisten reingesetzt.
# Description:
# This script remove strang looking stuff which will probably result in a break
# of your system. It should not be used unless you want to test out a few
# things. It is named `experimental_unfuckery.ps1` for a reason.
Import-Module -DisableNameChecking $PSScriptRoot\..\lib\take-own.psm1
Write-Output "Elevating priviledges for this process"
do {} until (Elevate-Privileges SeTakeOwnershipPrivilege)
Write-Output "Force removing system apps"
$needles = @(
#"Anytime"
"BioEnrollment"
#"Browser"
"ContactSupport"
#"Cortana" # This will disable startmenu search.
#"Defender"
"Feedback"
"Flash"
"Gaming"
#"Holo"
#"InternetExplorer"
#"Maps"
#"MiracastView"
"OneDrive"
#"SecHealthUI"
#"Wallet"
#"Xbox" # This will result in a bootloop since upgrade 1511
)
foreach ($needle in $needles) {
Write-Output "Trying to remove all packages containing $needle"
$pkgs = (Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" |
Where-Object Name -Like "*$needle*")
foreach ($pkg in $pkgs) {
$pkgname = $pkg.Name.split('\')[-1]
Takeown-Registry($pkg.Name)
Takeown-Registry($pkg.Name + "\Owners")
Set-ItemProperty -Path ("HKLM:" + $pkg.Name.Substring(18)) -Name Visibility -Value 1
New-ItemProperty -Path ("HKLM:" + $pkg.Name.Substring(18)) -Name DefVis -PropertyType DWord -Value 2
Remove-Item -Path ("HKLM:" + $pkg.Name.Substring(18) + "\Owners")
dism.exe /Online /Remove-Package /PackageName:$pkgname /NoRestart
}
}
Mit folgendem Befehl kann man dann alle sichtbar gemachten Windows-Packages, die bereits "installed" sind, entfernen (z.B. OneDrive, denn das ist versteckt!).
Get-WindowsPackage -Path C:\mount |where Packagestate -Eq Installed | Out-GridView -PassThru | Remove-WindowsPackage
Vorsicht! Das geschieht ohne Rücksicht auf Verluste! Es folgen keine Sicherheitsabfragen und entfernte Pakete lassen sich ggf. nicht mehr installieren.
3.6.
Abschalten bestimmter Dienste (es handelt sich um versteckte Dienste, die pro Benutzer anscheinend einen Unterprozess als Dienst registrieren und starten)
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\BluetoothUserService /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\CaptureService /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\DevicePickerUserSvc /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\DevicesFlowUserSvc /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\PimIndexMaintenanceSvc /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\MessagingService /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\PrintWorkflowUserSvc /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\OneSyncSvc /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\WpnUserService /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\BcastDVRUserService /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\CDPUserSvc /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\UnistoreSvc /v Start /t REG_DWORD /d 4 /f
reg add HKEY_LOCAL_MACHINE\WIM\ControlSet001\Services\UserDataSvc /v Start /t REG_DWORD /d 4 /f
Warnung: Durch das Ausschalten mindestens einer dieser Dienste legt man das primäre Startmenü (Linksklick) lahm. Es öffnet sich nicht mehr. Rechtsklick funktioniert weiterhin.
Eine Ersetzung durch ClassicShell oder OpenShell oder einen anderen Startmenüersatz schafft Abhilfe.
3.7.
Unliebsame SystemApps deaktivieren
Dazu kann man unter <mountdir>\windows\SystemApps die gewünschten App-Ordner suchen und einfach umbenennen.
Ich empfehle zur Nachvollziehbarkeit einfach mit einem "_BLOCKIERT" den Verzeichnisnamen zu suffixen.
Achtung: Es gibt Apps, die man so nicht sperren sollte, da sich das System sonst nicht installieren oder hochfahren lässt, aber Edge und Cortana wird man so los.
4.
Änderungen am Image bestätigen und Image schließen (zurück in geladene WIM-Datei schreiben)
Änderungen in WIM-File zurückschreiben.
Dism /Commit-Image /MountDir:<mountdir>
Eine mögliche Fehlermeldung weißt bei einem kombinierten Vorgang nicht die Ursache aus und "hält" einen Commit für wahrscheinlich erfolgreich.
Dism /UnMount-wim /MountDir:<mountdir> /discard
Dism /Cleanup-Wim
5.
WIM-Datei zurück in ESD-Datei konvertieren (dauert länger!)
Das ist eigentlich nicht erforderlich. Das Bootmedium akzeptiert install.esd oder install.wim. Eine von den beiden muss im richtigen Ordner liegen.
dism /export-image /SourceImageFile:"<Pfad zur Datei>\install.wim" /SourceIndex:1 /DestinationImageFile:"<Pfad zur Datei>\install.esd" /Compress:recovery /CheckIntegrity
FAZIT: Dieser Weg ist von mir mit der Build 1903 getestet und nicht kompatibel mit Windows-Updates. Der Components- und Feature-Speicher wird durch kumulative Updates zerschossen. Bei mir funktionierte danach das .NET Framework nicht mehr.
=============================================================================================================================
=============================================================================================================================
Ergänzung zu beiden Wegen
Dies sei erwähnt, weil ich selbst drüber stolpere. Wer die Build 1903 nutzt, wird feststellen, dass z.B. das Snipping-Tool durch eine bereits provisionierte APPX namens
"Ausschneiden und Skizzieren" wohl in naher Zukunft ersetzt werden soll.
Ich habe den Eindruck, dass Microsoft auf ähnlichem Wege auch mit anderen systeminternen Tools verfahren will. Hier nenne ich mal den Remotedesktopclient.
In der Build 1903 liegt er in Version 10.0 vor. Als APPX für Windows hat er bereits Version 10.1 und damit eine für mich interessante Fehlerbereinigung.
Nur wie verteilt man solch eine APPX, wenn man die Images so baut, dass der Microsoft-Store nicht mehr enthalten ist?
"Offline" ist die Antwort. Also braucht es einen Weg, wie man an ein offline verfügbares APPXBundle von MSTSC herankommt und dieses auch ausrollen kann.
Das Herankommen geht aus meiner Sicht nur so:
Man braucht einen Login zum Microsoft Store for Business: https://businessstore.microsoft.com/
Unter "Verwalten" gibt es "Einstellungen" und dort die Möglichkeit unter "Einkaufserfahrung" die Offline-Lizenzen einzuschalten.
Wenn man dann nach Remotedesktop sucht, kann man die APPX als APPXBundle herunterladen.
Die APPXBundle sollte sich mittels
DISM.exe /Add-ProvisionedAppxPackage
oder
Get-AppxProvisionedPackage -Path <mountpath>
ins Image integrieren lassen, wenn sie nicht bereits provisioniert ist.
Hinweis: Die obigen Befehle sind derzeit noch unvollständig. Ich ergänze die Parameter, sobald ich testen konnte.
=============================================================================================================================
=============================================================================================================================
Notizblock
1.
Mittels Media-Creation-Tool von https://www.microsoft.com/de-de/software-download/windows10 eine ISO der aktuellen Build erstellen, vorzugsweise 32Bit und 64Bit.
2.
Mit 7-Zip die ISO öffnen.
In der ISO (wenn 32Bit und 64Bit kombiniert) muss die Datei install.esd entpackt werden. Diese gibt es zweimal:
ISO-Datei\x64\sources\install.esd
ISO-Datei\x86\sources\install.esd
Pro install.esd folgende Schritte durchlaufen:
1.
Auflisten aller Indizes und Editionen in der Datei:
dism /Get-WimInfo /WimFile:<Pfad zur Datei>\install.esd
2.
Gewünschte Edition exportieren
dism /Export-Image /SourceImageFile:<Pfad zur Datei>\install.esd /SourceIndex:5 /DestinationImageFile:<Pfad zur Datei>\install.wim /Compress:Maximum
4.
Änderungen am Image bestätigen und Image schließen (zurück in geladene WIM-Datei schreiben)
Änderungen in WIM-File zurückschreiben.
Dism /Commit-Image /MountDir:C:\test\offline
Eine mögliche Fehlermeldung weißt bei einem kombinierten Vorgang nicht die Ursache aus und "hält" einen Commit für wahrscheinlich erfolgreich.
Dism /UnMount-wim /MountDir:<mountdir> /discard
Dism /Cleanup-Wim
5. WIM-Datei zurück in ESD-Datei konvertieren (dauert länger!)
dism /export-image /SourceImageFile:"<Pfad zur Datei>\install.wim" /SourceIndex:1 /DestinationImageFile:"<Pfad zur Datei>\install.esd" /Compress:recovery /CheckIntegrity
6. ESD-Datei in ISO integrieren.
Das geht mit einem von zwei mir bekannten Tools: PowerISO und UltraISO. Beide Tools kosten etwas Geld, sind es aber wert.
KORREKTUREN UND VERBESSERUNGEN zu obigen Punkten (Stand 06.08.2019)
3.1. und 3.2.
Die Entfernung unliebsamer Dinge wie OneDrive lässt sich komfortabler umsetzen. Allerdings wird dazu derzeit eine Software namens install_wim_tweak benötigt.
Diese dient nur einem Zweck: Die Sichtbarmachung von Packages, die im Registry-Key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\ des gemounteten WIM-Images gespeichert sind.
Ich konnte noch nicht analysieren, welche Attribute ausschlaggebend sind, dass Pakete (wie z.B. OneDrive) versteckt (Hidden) sind und andere nicht.
Mit dem Befehl:
install_wim_tweak /p c:\mountpath
Get-AppxProvisionedPackage -Path C:\mount | Out-GridView -PassThru | Remove-AppxProvisionedPackage
Get-WindowsPackage -Path C:\mount |where Packagestate -Eq Installed | Out-GridView -PassThru | Remove-WindowsPackage
Der untere Befehl listet nur die Pakete auf, die im Status bereits "installed" haben.
Ein Wort der Warnung!
install_wim_Tweak in obiger Anwendung macht weitgehend alle Pakete sicht- und entfernbar. Das kann übel ins Auge gehen, wenn man das falsche Paket rauswirft.
Es sollte in einer Laborumgebung getestet werden, bevor man ein Produktivimage baut.
Ich möchte install_wim_tweak auch durch ein Script ersetzen, bei dem man besser erkennt, was es tut.
3.3.
Der im obigen Abschnitt 3.3. beschriebene Vorgang ist nicht korrekt. Die vorhandene Datei DefaultLayouts.xml verändert man nicht.
Der beschriebene Dateiinhalt muss in einer Datei namens LayoutModification.xml im gleichen Verzeichnis gespeichert werden.
Ergänzung: Interessanterweise funktioniert das Startmenü immernoch nicht. Derzeit nehme ich an, dass es etwas mit den deaktivierten Diensten unter 3.6. zu tun haben könnte.
Genauso funktioniert die rechte Maustaste nicht korrekt beim Klick auf eine Datei.
KORREKTUREN UND VERBESSERUNGEN zu obigen Punkten (Stand 09.08.2019)
Neuer Punkt
3.7. Entfernung von Cortana und anderem unliebsamen Dreck
Das gemountete Image kann mittels Windowsexplorer durchgegangen werden:
Im Verzeichnis c:\<mountpfad>\windows\systemapps und im Verzeichnis C:\<mountpfad>\Prgram Files\WindowsApps (und zästzlich eventuell unter C:\Users\username\AppData\Local\Packages) befindet sich so mancher Kram, der einfach gelöscht werden kann, wenn
- man den Besitz des jeweiligen Unterordners übernommen hat,
- den Besitz auf die darunterliegenden Einheiten vererbt hat
- die Vererbung wieder einschaltet
- sich selbst die notwendigen Rechte einräumt.
Ich habe mir so Edge und Cortana noch vor Installation vom Hals geschafft. Allerdings sei folgendes erwähnt:
Speziell im Ordner SystemApps ist Vorsicht geboten. Es gibt Ordner, die man nicht umbennen oder löschen sollte, weil Windows danach nicht funktioniert.
Bei Cortana und Edge kann ich in der 1903er Build aber sagen, dass keine Probleme auftreten, außer dass das "Suchen"-Feld in der Taskleiste und Suchen im Startmenü nicht funktionieren wird.
Eine hilfreiche Seite: https://www.askvg.com/windows-10-tip-remove-cortana-microsoft-edge-conta ...
KORREKTUREN UND VERBESSERUNGEN zu obigen Punkten (Stand 13.08.2019)
Neuer Punkt 3.7 - Ergänzung:
Nach der Entfernung von Cortana funktioniert die Suche nicht mehr. Weder die Suche nach Startmenü-Inhalten noch die Suche in der Taskleisten-Suchbox können genutzt werden.
Da die Taskleisten-Suchbox überflüssig wird, kann man sie auch von vorne herein entfernen. Das sollte wie folgt für alle Nutzer möglich sein.
reg load HKEY_LOCAL_MACHINE\WIM $mountdir\Users\Default\ntuser.dat
reg query "HKEY_LOCAL_MACHINE\WIM\SOFTWARE\Microsoft\Windows\CurrentVersion\Search"
reg add "HKEY_LOCAL_MACHINE\WIM\SOFTWARE\Microsoft\Windows\CurrentVersion\Search /v SearchboxTaskbarMode /t REG_DWORD /d 0 /f
reg unload HKEY_LOCAL_MACHINE\WIM
Punkt 3.6.
Das Abschalten der oben erwähnten Dienste sorgt dafür, dass das Startmenü (Linke Maustaste!) nicht mehr funktioniert. Das mit rechter Maustaste zu öffnende Menü funktioniert noch.
Welcher Dienst daran beteiligt ist, vermag ich nicht zu sagen derzeit. Ich lasse also alle aktiv.
KORREKTUREN UND VERBESSERUNGEN zu obigen Punkten (Stand 20.08.2019)
Mir ist bei Tests folgendes aufgefallen: Ein kumulatives Update (hier August 2019) zerschießt das vorinstallierte .NET-Framework.
Ich habe es mehrfach wiederholt unter folgenden Bedingungen:
- OneDrive entfernt
- Appx alle bis auf Paint entfernt
- Startlayout angepasst
- Cortana und Edge entfernt
Das Ergebnis ist immer gleich: Die Installation klappt reibungslos und das .NET Framework ist intakt danach (Getestet über Powershell; Ordner C:\Windows\Microsoft.Net untersucht - >600MB).
Nachdem das kumulative Update installiert hat, öffnet sich die Powershell nicht mehr und der untersuchte .NET-Ordner ist nur noch ca. 40MB groß.
FAZIT: Ein customized Image scheint von kumulativen Updates nicht erwartet zu werden. Also muss eine Windows-Update-Blockierung her.
Schade eigentlich.
KORREKTUREN UND VERBESSERUNGEN zu obigen Punkten (Stand 22.08.2019)
Dies ist das Script eines Kollegen, welches install_wim_tweak ablösen könnte. Wichtig ist, dass die Registry des Wim-Image eingehängt ist und im Script der Pfad angepasst ist.
Der Grundgedanke ist, dass install_wim_tweak alle Packages sichtbar macht. Dies geschieht so:
Das Programm hängt nach Übergeben des Mount-Pfades die Registry des Images ein und greift auf den Schlüssel
HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\
zu.
In jedem Unterschlüssel dazu befindet sich ein DWORD_Wert mit Namen Visibility. Steht dieser auf 1, ist das Paket sichtbar, steht er auf 2, taucht es nicht auf.
Die Software ändert bei allen Paketen diesen Wert auf 1 und erstellt eine zusätzliche Variable DefVis, die den originalen Wert nochmals enthält.
Das Script hier tut in etwa das gleiche, nur dass hier die Möglichkeit gegeben ist, nach gewissen Schlüsselwörtern zu filtern, so dass nicht der komplette Paketbaum
umgedreht wird. Ich kann derzeit nicht ausschließen, dass die Visibility noch eine andere Bedeutung haben kann, als nur das "Verstecken", deswegen werde ich händisch
die Schlüssel ändern, die OneDrive enthalten.
# Description:
# This script remove strang looking stuff which will probably result in a break
# of your system. It should not be used unless you want to test out a few
# things. It is named `experimental_unfuckery.ps1` for a reason.
Import-Module -DisableNameChecking $PSScriptRoot\..\lib\take-own.psm1
Write-Output "Elevating priviledges for this process"
do {} until (Elevate-Privileges SeTakeOwnershipPrivilege)
Write-Output "Force removing system apps"
$needles = @(
#"Anytime"
"BioEnrollment"
#"Browser"
"ContactSupport"
#"Cortana" # This will disable startmenu search.
#"Defender"
"Feedback"
"Flash"
"Gaming"
#"Holo"
#"InternetExplorer"
#"Maps"
#"MiracastView"
"OneDrive"
#"SecHealthUI"
#"Wallet"
#"Xbox" # This will result in a bootloop since upgrade 1511
)
foreach ($needle in $needles) {
Write-Output "Trying to remove all packages containing $needle"
$pkgs = (Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages" |
Where-Object Name -Like "*$needle*")
foreach ($pkg in $pkgs) {
$pkgname = $pkg.Name.split('\')[-1]
Takeown-Registry($pkg.Name)
Takeown-Registry($pkg.Name + "\Owners")
Set-ItemProperty -Path ("HKLM:" + $pkg.Name.Substring(18)) -Name Visibility -Value 1
New-ItemProperty -Path ("HKLM:" + $pkg.Name.Substring(18)) -Name DefVis -PropertyType DWord -Value 2
Remove-Item -Path ("HKLM:" + $pkg.Name.Substring(18) + "\Owners")
dism.exe /Online /Remove-Package /PackageName:$pkgname /NoRestart
}
}
Weitere interessante Scripts des Kollegen: https://github.com/W4RH4WK/Debloat-Windows-10
Please also mark the comments that contributed to the solution of the article
Content-ID: 476929
Url: https://administrator.de/contentid/476929
Printed on: November 10, 2024 at 19:11 o'clock
39 Comments
Latest comment
Zitat von @Globetrotter:
Hi..
Ist ja ne feine Arbeit.. was machste aber bei einem "Feature"-Update von Win-garniX ?
Dann sind die ganzen Apps wieder da und Du darfst wieder aufräumen...
Einzige Lösung bisher in meinen Augen ist LTSB buw. LTSC.... leider..
Trotzdem.. sehr schöne Sache von Dir!
Gruss Globe!
Hi..
Ist ja ne feine Arbeit.. was machste aber bei einem "Feature"-Update von Win-garniX ?
Dann sind die ganzen Apps wieder da und Du darfst wieder aufräumen...
Einzige Lösung bisher in meinen Augen ist LTSB buw. LTSC.... leider..
Trotzdem.. sehr schöne Sache von Dir!
Gruss Globe!
https://docs.microsoft.com/en-us/windows/application-management/remove-p ...
Mit freundlichen Grüßen
Zitat von @Globetrotter:
Hi..
Ist ja ne feine Arbeit.. was machste aber bei einem "Feature"-Update von Win-garniX ?
Dann sind die ganzen Apps wieder da und Du darfst wieder aufräumen...
Einzige Lösung bisher in meinen Augen ist LTSB buw. LTSC.... leider..
Hi..
Ist ja ne feine Arbeit.. was machste aber bei einem "Feature"-Update von Win-garniX ?
Dann sind die ganzen Apps wieder da und Du darfst wieder aufräumen...
Einzige Lösung bisher in meinen Augen ist LTSB buw. LTSC.... leider..
Na ja mal davon abgesehen davon, dass LTSB/LTSC von MS ausdrücklich nicht für Büro-PC empfohlen wird.
Wir machen das hier ganz ähnlich mit dem angepassten wim-Image (allerdings nicht gaanz so weit angepasst). Feature-Updates gehen dann auch per angepassten Image.
Da wir ohnehin nur noch die Herbstversionen von Windows 10 Supporten hält sich auch der Anpassungsaufwand in Grenzen. Und bei 2000 Rechnern kann man dann auch mal 1-2 Tage für das Customizing des Images investieren.
Hallo zusammen,
ich kann OSDBuilder sehr empfehlen.
Kann man dann Scripten und automatisch monatlich fully updated Builds in MDT laden
Des Weiteren lassen sich für verschiedene Builds verschieden Templates anlegen um zb APPX Pakete zu entfernen , netfx35 aktivieren ect.
.
Siehe:
https://citrixguyblog.com/2019/03/19/osdbuilder-reference-image-on-stero ...
https://www.osdeploy.com/osdbuilder
ich kann OSDBuilder sehr empfehlen.
Kann man dann Scripten und automatisch monatlich fully updated Builds in MDT laden
Des Weiteren lassen sich für verschiedene Builds verschieden Templates anlegen um zb APPX Pakete zu entfernen , netfx35 aktivieren ect.
.
Siehe:
https://citrixguyblog.com/2019/03/19/osdbuilder-reference-image-on-stero ...
https://www.osdeploy.com/osdbuilder
Hi @ll...
Ich finde das echt ne tolle Sache.. lässt sich dies wirklich auch bei Win10Pro realisieren oder nur bei der Enterprise??
Da mein Laden unter Fujitsu fungiert habe ich auch nicht das Problem mit den Keys, dachte aber, daß das mit den Apps & CoKG nur unter der Enterprise geht... wie vieles andere auch... leider...
Gruss Globe!
Ich finde das echt ne tolle Sache.. lässt sich dies wirklich auch bei Win10Pro realisieren oder nur bei der Enterprise??
Da mein Laden unter Fujitsu fungiert habe ich auch nicht das Problem mit den Keys, dachte aber, daß das mit den Apps & CoKG nur unter der Enterprise geht... wie vieles andere auch... leider...
Gruss Globe!
Hallo,
gibt es eine Möglichkeit, die ganzen Schalter in den Datenschutz-Einstellungen per registry-Eintrag standardmäßig auf "AUS" zu stellen?
Momentan muss man das in jedem (neu angelegten) Nutzerkonto manuell machen, ich will aber nicht die Gruppenrichtlinien dafür nutzen, weil das dann alle Konten betrifft und nicht wieder zurückstellbar ist.
Ansonsten hat das de-bloating mit der 1. beschriebenen Methode schon ganz gut geklappt!
gibt es eine Möglichkeit, die ganzen Schalter in den Datenschutz-Einstellungen per registry-Eintrag standardmäßig auf "AUS" zu stellen?
Momentan muss man das in jedem (neu angelegten) Nutzerkonto manuell machen, ich will aber nicht die Gruppenrichtlinien dafür nutzen, weil das dann alle Konten betrifft und nicht wieder zurückstellbar ist.
Ansonsten hat das de-bloating mit der 1. beschriebenen Methode schon ganz gut geklappt!
Danke, leider bringt das nicht den erwünschten Erfolg. Fast alle Schalter (es sind unglaublich viele) sind danach noch "an", vermutlich ist das erzeugte registry-script für eine ältere Windows-Version, die die ganzen Schalter noch garnicht hatte.
Mit GPOs möchte ich möglichst nicht arbeiten. Die meisten Sperrmaßnahmen bedienen sich bei den GPO-Möglichkeiten, das betrifft dann aber gleich den ganzen Rechner.
Mit GPOs möchte ich möglichst nicht arbeiten. Die meisten Sperrmaßnahmen bedienen sich bei den GPO-Möglichkeiten, das betrifft dann aber gleich den ganzen Rechner.
Hallo,
den ProcMon hatte ich letzte Woche ausprobiert, nachdem ich für Regmon nur uralte Links gefunden habe. Leider ist das extrem unübersichtlich, der Procmon zeigt selbst im Idle sekündlich Änderungen in der Registry an. Wie stellt man den aufs Wesentliche ein?
Statt eines der Hilfsprogramme habe ich die Schalter einfach manuell betätigt; was ich bislang rausfinden konnte: Ein ausgeschalteter Schalter erzeugt(!) einen neuen Eintrag mit einer scheinbar willkürlichen Zeichenkette im HKCU-Zweig.
Dass die Änderungen rückgängig zu machen sind, ist durchaus erwünscht. Viel wichtiger: Ein neu angelegtes Benutzerprofil ist nun standardmäßig ohne umfangreiche Datenerhebung ausgestattet.
den ProcMon hatte ich letzte Woche ausprobiert, nachdem ich für Regmon nur uralte Links gefunden habe. Leider ist das extrem unübersichtlich, der Procmon zeigt selbst im Idle sekündlich Änderungen in der Registry an. Wie stellt man den aufs Wesentliche ein?
Statt eines der Hilfsprogramme habe ich die Schalter einfach manuell betätigt; was ich bislang rausfinden konnte: Ein ausgeschalteter Schalter erzeugt(!) einen neuen Eintrag mit einer scheinbar willkürlichen Zeichenkette im HKCU-Zweig.
Dass die Änderungen rückgängig zu machen sind, ist durchaus erwünscht. Viel wichtiger: Ein neu angelegtes Benutzerprofil ist nun standardmäßig ohne umfangreiche Datenerhebung ausgestattet.
Hallo und frohes Neujahr,
ich bin gerade dabei, ein angepasstes Image zu bauen und würde gerne die Registry-Einträge einbauen, stoße aber auf ein Problem mit dem Ausdruck. Ganz oben unter 3.1.4. wird z.B. diese Syntax verwendet:
Die Aluhut-Einstellungen liegen aber in dieser Form vor:
Wie schreibt man die Befehle um, dass sie in die geladene Registry via Powershell eingetragen/geändert werden können? Außerdem wird zur Bearbeitung die "ntuser.dat" geladen; ist das trotzdem richtig, um die Zweige LocalMachine und CurrentUser modifizieren zu können?
Noch eine Anmerkung bzgl. des 1909-Updates, das kann wie andere Updates mitintegriert werden, wird aber nicht im Microsoft-Updatekatalog aufgeführt und muss anderweitig bezogen werden: https://support.microsoft.com/en-us/help/4517245/feature-update-via-wind ...
Damit das Paket wie unter 3.5.2. integriert werden kann, müssen zwei aktuelle Updates (Servicing Stack und Kumulatives Update) vorher eingebaut worden sein, deswegen muss man u.U. manuell auf das Paket verweisen:
Dann funktioniert es.
ich bin gerade dabei, ein angepasstes Image zu bauen und würde gerne die Registry-Einträge einbauen, stoße aber auf ein Problem mit dem Ausdruck. Ganz oben unter 3.1.4. wird z.B. diese Syntax verwendet:
reg add HKEY_LOCAL_MACHINE\WIM\SOFTWARE\Microsoft\Windows\CurrentVersion\Search /v SearchboxTaskbarMode /t REG_DWORD /d 0 /f
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OneDrive]
"PreventNetworkTrafficPreUserSignIn"=dword:00000001
Wie schreibt man die Befehle um, dass sie in die geladene Registry via Powershell eingetragen/geändert werden können? Außerdem wird zur Bearbeitung die "ntuser.dat" geladen; ist das trotzdem richtig, um die Zweige LocalMachine und CurrentUser modifizieren zu können?
Noch eine Anmerkung bzgl. des 1909-Updates, das kann wie andere Updates mitintegriert werden, wird aber nicht im Microsoft-Updatekatalog aufgeführt und muss anderweitig bezogen werden: https://support.microsoft.com/en-us/help/4517245/feature-update-via-wind ...
Damit das Paket wie unter 3.5.2. integriert werden kann, müssen zwei aktuelle Updates (Servicing Stack und Kumulatives Update) vorher eingebaut worden sein, deswegen muss man u.U. manuell auf das Paket verweisen:
dism /image:<mountdir> /add-package /Packagepath:KB4517245.cab
Hallo,
es gibt einen Weg, .reg-Dateien bzw. Dateien, die die Syntax von .reg enthalten, in Kommandozeile zu überführen: https://www.sordum.org/8478/reg-converter-v1-2/
Man muss die erzeugte Batch-Datei nur noch im Editor bearbeiten bzw. die gewünschten/alle Befehle rauskopieren und in die Powershell einfügen.
Trotzdem noch eine Frage, weil mir die Bearbeitung der Registry im gemounteten Image etwas rätselhaft vorkommt. Die ntuser.dat habe ich wie unter 3.1.3. beschrieben geladen:
Dann konnte ich alle Befehle fehlerfrei ausführen, egal in welchem Ast die Einträge landen sollen, Beispiel:
War das jetzt richtig? Ich fremdel' immer noch mit dem Befehl "reg load HKEY_LOCAL_MACHINE\WIM", weil da hkey_local_machine drinsteht.......
es gibt einen Weg, .reg-Dateien bzw. Dateien, die die Syntax von .reg enthalten, in Kommandozeile zu überführen: https://www.sordum.org/8478/reg-converter-v1-2/
Man muss die erzeugte Batch-Datei nur noch im Editor bearbeiten bzw. die gewünschten/alle Befehle rauskopieren und in die Powershell einfügen.
Trotzdem noch eine Frage, weil mir die Bearbeitung der Registry im gemounteten Image etwas rätselhaft vorkommt. Die ntuser.dat habe ich wie unter 3.1.3. beschrieben geladen:
reg load HKEY_LOCAL_MACHINE\WIM <mountdir>\Users\Default\ntuser.dat
reg add "HKCU\Control Panel\International\User Profile" /v "HttpAcceptLanguageOptOut" /t REG_DWORD /d "1" /f
reg add "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\FlipAhead" /v "FPEnabled" /t REG_DWORD /d "0" /f
Reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\7971F918-A847-4430-9279-4A52D1EFE18D" /v "RegisteredWithAU" /t REG_DWORD /d "0" /f
Reg add "HKLM\SOFTWARE\Policies\Microsoft\Biometrics" /v "Enabled" /t REG_DWORD /d "0" /f
Reg add "HKLM\SYSTEM\CurrentControlSet\Services\wuauserv" /v "Start" /t REG_DWORD /d "4" /f
War das jetzt richtig? Ich fremdel' immer noch mit dem Befehl "reg load HKEY_LOCAL_MACHINE\WIM", weil da hkey_local_machine drinsteht.......
Hallo,
leider hat das nicht geklappt, die gewünschten Einträge wurden erfolgreich eingetragen, aber leider nicht im gemounteten Image, sondern auf dem Online-System auf dem "Arbeitsrechner". Vermutlich waren meine Pfade falsch.
Meine Frage: Ist es egal, an welcher Stelle der Registry man die Datei (NTUSER.dat, SYSTEM, SOFTWARE) des offline-Systemes einhängt? Im Registry-Editor wird die Funktion "Struktur laden" nur für HKLM und HKU angezeigt. Ich habe das gefunden: https://www.windowspro.de/wolfgang-sommergut/registry-offline-bearbeiten ...
Das ist zum ansehen etwas komfortabler und so kann ein bereits installiertes, nicht gestartetes Windows bearbeitet werden.
leider hat das nicht geklappt, die gewünschten Einträge wurden erfolgreich eingetragen, aber leider nicht im gemounteten Image, sondern auf dem Online-System auf dem "Arbeitsrechner". Vermutlich waren meine Pfade falsch.
Meine Frage: Ist es egal, an welcher Stelle der Registry man die Datei (NTUSER.dat, SYSTEM, SOFTWARE) des offline-Systemes einhängt? Im Registry-Editor wird die Funktion "Struktur laden" nur für HKLM und HKU angezeigt. Ich habe das gefunden: https://www.windowspro.de/wolfgang-sommergut/registry-offline-bearbeiten ...
Das ist zum ansehen etwas komfortabler und so kann ein bereits installiertes, nicht gestartetes Windows bearbeitet werden.
Hallo allerseits,
das oben beschriebene Vorgehen funktioniert auch mit dem aktuellen Build 20H2 ohne Probleme.
Entweder enthält der Build bereits das neue Edge (auf Chromium-Basis) oder er wurde während meiner Bearbeitung durch ein geslipstreamtes, kumulatives Update nachgereicht.
Wie kann man verhindern, dass er im Image landet bzw. bereits bei der Bearbeitung entfernen?
Ich habe es nach dieser Anleitung nach der fertigen Installation entfernen können: https://www.pcwelt.de/tipps/Edge-Chromium-nach-Zwangsupdate-deinstallier ...
Je nach Versionsnummer (hier stellvertretend "xx.x.xxx.xx") von Edge muss der Pfad etwas angepasst werden:
das oben beschriebene Vorgehen funktioniert auch mit dem aktuellen Build 20H2 ohne Probleme.
Entweder enthält der Build bereits das neue Edge (auf Chromium-Basis) oder er wurde während meiner Bearbeitung durch ein geslipstreamtes, kumulatives Update nachgereicht.
Wie kann man verhindern, dass er im Image landet bzw. bereits bei der Bearbeitung entfernen?
Ich habe es nach dieser Anleitung nach der fertigen Installation entfernen können: https://www.pcwelt.de/tipps/Edge-Chromium-nach-Zwangsupdate-deinstallier ...
Je nach Versionsnummer (hier stellvertretend "xx.x.xxx.xx") von Edge muss der Pfad etwas angepasst werden:
C:\Program Files (x86)\Microsoft\Edge\Application\xx.x.xxx.xx\setup.exe --uninstall --system-level --verbose-logging --force-uninstall
Nach langer Zeit mal ein anderer Gedanke:
Die LTSC- bzw. LTSB-Versionen bieten nahezu den Idealfall eines reinen Betriebssystems frei Haus, sind aber für Privatkunden nicht erhältlich. Wäre es dagegen möglich, aus so einer Version als Basis eine Pro-Version zu generieren? Funktional unterscheidet sich nicht besonders viel, abgesehen vom Weglassen und der Lizenz-"personality".
Die LTSC- bzw. LTSB-Versionen bieten nahezu den Idealfall eines reinen Betriebssystems frei Haus, sind aber für Privatkunden nicht erhältlich. Wäre es dagegen möglich, aus so einer Version als Basis eine Pro-Version zu generieren? Funktional unterscheidet sich nicht besonders viel, abgesehen vom Weglassen und der Lizenz-"personality".
Hast Du das mal mit einer LTSC-Version ausprobiert?
Soweit mir bekannt, lassen die Upgradepfade das nicht zu, da LTSC-/LTSB-Versionen auf älteren Builds basieren und das nachträgliche Entfernen von Funktionen per Lizenzkey nicht vorgesehen zu sein scheint.
Deswegen kann man problemlos von Core zu Pro wechseln, aber umgekehrt geht es nicht bzw. nur nur mit Tricksereien.
Soweit mir bekannt, lassen die Upgradepfade das nicht zu, da LTSC-/LTSB-Versionen auf älteren Builds basieren und das nachträgliche Entfernen von Funktionen per Lizenzkey nicht vorgesehen zu sein scheint.
Deswegen kann man problemlos von Core zu Pro wechseln, aber umgekehrt geht es nicht bzw. nur nur mit Tricksereien.