beidermachtvongreyscull
Goto Top

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:
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  
bei englischem 64Bit-Windows:
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
Löschen der Datei bei 32Bit-Edition
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
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.
<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
Aktivieren: (wenn externe Quellen notwendig):
dism /Image:<mountdir> /Enable-Feature /FeatureName:NetFx3 /Source:<sourcepath>\sxs /LimitAccess
Deaktivieren:
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>
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.
Dism /UnMount-wim /MountDir:<mountdir> /discard
Aufräumen
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
Aktivieren: (wenn externe Quellen notwendig):
dism /Image:<mountdir> /Enable-Feature /FeatureName:NetFx3 /Source:<sourcepath>\sxs /LimitAccess
Deaktivieren:
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>
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.
Dism /UnMount-wim /MountDir:<mountdir> /discard
Aufräumen
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
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.
Dism /UnMount-wim /MountDir:<mountdir> /discard
Aufräumen
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 
werden aber die Packages sichtbar gemacht, so dass mittels
Get-AppxProvisionedPackage -Path C:\mount | Out-GridView -PassThru | Remove-AppxProvisionedPackage
alle gewünschten provisionierten APPX-Packages, die man loswerden will, komfortabel ausgewählt und entfernt werden können und mittels
Get-WindowsPackage -Path C:\mount |where Packagestate -Eq Installed | Out-GridView -PassThru | Remove-WindowsPackage
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
  • 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

Content-ID: 476929

Url: https://administrator.de/tutorial/custom-windows-10-iso-bauen-in-kontinuierlicher-verbesserung-ausgabe-2019-476929.html

Ausgedruckt am: 22.12.2024 um 03:12 Uhr

beidermachtvongreyscull
beidermachtvongreyscull 24.07.2019 um 13:38:28 Uhr
Goto Top
Einen Schönheitsfehler habe ich nach Tests gefunden:

Das Startmenü (Linke Maustaste) öffnet sich nicht mehr. Rechtsklick auf Startmenü funktioniert.
Ich nehme an, dass ich den Vorgang unter 3.3 nochmal ändern muss.

Und noch etwas:
Ich mag beide Tools unter Punkt 6 und habe damit gute Ergebnisse. Allerdings würde ein Freewaretool, dass die Bearbeitung von ISOs zulässt das Bild abrunden, denn ich versuche solche Lösungen so Level-0 und kostenneutral wie möglich zu gestalten.

Falls jemand also eine Idee oder Anregung hat, bin ich sehr dankbar.

Viele Grüße
bdmvg
Globetrotter
Globetrotter 25.07.2019 um 01:55:04 Uhr
Goto Top
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!
7Gizmo7
7Gizmo7 25.07.2019 um 08:37:34 Uhr
Goto Top
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!


https://docs.microsoft.com/en-us/windows/application-management/remove-p ...

Mit freundlichen Grüßen
holli.zimmi
holli.zimmi 25.07.2019 um 08:42:21 Uhr
Goto Top
Hi,

das Tool nennt sich "ESD Decrypter", siehe URL:
ESD Decrypter

Gruß

Holli
beidermachtvongreyscull
beidermachtvongreyscull 25.07.2019 um 08:48:18 Uhr
Goto Top
Guten Morgen Globe!

schau mal hier nach:
https://docs.microsoft.com/en-us/windows/application-management/remove-p ...

MS selbst sagt, dass wenn man die APPX auf diesem Weg in einer WIM oder in einem Offline-Image abmeldet, dann würde ein Registry-key erstellt, der dafür sorgt, dass die deprovisioned packages nicht wieder installiert werden.

Die Sache mit dem Reg-Key prüfe ich nochmal. Ich muss das Image wegen den Änderungen in 3.3. sowieso nochmals ändern.

Was ich oben unter Punkt 3.2 nicht erwähnt habe ist, dass ich wirklich alle AppX, also auch den AppX-Installer als auch Windows-Store rausschmeiße.
Ich schaue noch, wie ich Cortana loswerde, denn die habe ich nicht gesehen in der Auflistung, oder übersehen. MS hat Cortana vom Suchdienst gelöst. So sollte man den Sprachassi zum Teufel schicken können und dennoch die Suchfunktion erhalten können.

Ich danke Dir auf jeden Fall für Deinen Beitrag.

Gruß,
bdmvg
monstermania
monstermania 25.07.2019 um 08:51:57 Uhr
Goto Top
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..

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.
beidermachtvongreyscull
beidermachtvongreyscull 25.07.2019 um 08:53:07 Uhr
Goto Top
Danke für den Hinweis Holli.

Ich werde das Tool mal ausprobieren, bin aber nicht sicher, ob es die Lösung ist, denn:

Mit dem Media-Creation-Tool erstelle ich ja bereits eine ISO und die enthält neben den install.esd-Dateien auch die Bootimages als boot.wim-Dateien.
Ich muss gestehen, ich weiß nicht, ob eine install.esd nach ISO konvertiert ein startfähiges Image ergibt, ich hätte dann nur das Problem, dass ich diesen Dual-boot zwischen 32bit- und 64bit-Edition nicht mehr hätte.

Gruß,
bdmvg
monstermania
monstermania 25.07.2019 um 08:56:06 Uhr
Goto Top
Moin,
tollte Arbeit.
Wir customizen unserer ISO bzw. WIM-Datei nicht ganz so intensiv, da viele Anpassungen bei uns per GPO erledigt werden.

Mit DISM++ (Freeware) lässt sich das Image ebenfalls sehr komfortabel anpassen.

Gruß
Dirk
beidermachtvongreyscull
beidermachtvongreyscull 25.07.2019 um 09:14:56 Uhr
Goto Top
Moin,

Vielen Dank für Deinen Hinweis auf DISM++.
Das Ding gefällt mir, obwohl ich eigentlich gerne mit Boardmitteln arbeite.
dodo30
dodo30 25.07.2019 um 12:06:46 Uhr
Goto Top
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
Globetrotter
Globetrotter 25.07.2019 um 23:21:05 Uhr
Goto Top
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!
beidermachtvongreyscull
beidermachtvongreyscull 26.07.2019 um 10:27:48 Uhr
Goto Top
Ich kann Dir aus Erfahrung sagen, dass es auch mit der Pro-Edition funktioniert.
Ich benutze nur die.

Du hast in den Originaldateien folgende Versionen drin:

Details für Abbild: "install.esd"

Index: "1"
Name: "Windows 10 Home"
Beschreibung: "Windows 10 Home"
Größe: 14.550.145.165 Bytes

Index: "2"
Name: "Windows 10 Home N"
Beschreibung: "Windows 10 Home N"
Größe: 13.736.568.185 Bytes

Index: "3"
Name: "Windows 10 Education"
Beschreibung: "Windows 10 Education"
Größe: 14.824.710.761 Bytes

Index: "4"
Name: "Windows 10 Education N"
Beschreibung: "Windows 10 Education N"
Größe: 14.014.532.475 Bytes

Index: "5"
Name: "Windows 10 Pro"
Beschreibung: "Windows 10 Pro"
Größe: 14.825.183.174 Bytes

Index: "6"
Name: "Windows 10 Pro N"
Beschreibung: "Windows 10 Pro N"
Größe: 14.014.988.175 Bytes

Du kannst Dir also mit dem Export-Kommando unter Punkt 2. die gewünschte Edition rausziehen und so bearbeiten.
Schluckimpfung
Schluckimpfung 24.09.2019 um 12:47:48 Uhr
Goto Top
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!
beidermachtvongreyscull
beidermachtvongreyscull 26.09.2019 aktualisiert um 20:05:57 Uhr
Goto Top
Zitat von @Schluckimpfung:

Hallo,
Hi,

gibt es eine Möglichkeit, die ganzen Schalter in den Datenschutz-Einstellungen per registry-Eintrag standardmäßig auf "AUS" zu stellen?

Durchaus.
Schau mal hier: https://www.itz.uni-halle.de/dienstleistungen/betriebssysteme/mswindows9 ...
Die pro Nutzereinstellungen kommen in den DEFAULT-User, der Rest standard.
Schau mal im Forum. Es gab auch einen Artikel, der sich mit den Datenschutzeinstellungen befasst hat.
Windows 10 per GPO mundtot machen

Ansonsten hat das de-bloating mit der 1. beschriebenen Methode schon ganz gut geklappt!

Freut mich, zu lesen.
Schluckimpfung
Schluckimpfung 27.09.2019 um 12:18:01 Uhr
Goto Top
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.
beidermachtvongreyscull
beidermachtvongreyscull 27.09.2019 um 15:36:49 Uhr
Goto Top
Es gibt eine Security Baseline für den Datenschutz.
Ich müsste aber die GPO selbst erstmal analysieren, um daraus die richtigen Registrywerte abzuleiten.

Du könntest ja folgendes versuchen:

Hol Dir ein Tool wie O&O Shutup10!
Dazu packst Du den Regmon von Sysinternals.

Jetzt veränderst Du die Einstellungen und solltest sehen, welche Registryschlüssel der O&O anfasst.

Ich werde das auch mal testen.
beidermachtvongreyscull
beidermachtvongreyscull 30.09.2019 um 14:02:15 Uhr
Goto Top
Ich habe es gerade ausprobiert.

Folgender Aufbau:

Ich habe von O&O-Software mal Shutup10! heruntergeladen und von Microsoft Sysinternals Process Monitor.
Den Process Monitor habe ich konfiguriert auf folgenden Filter:
filter

Und dann startest Du die O&O-Software und solltest mit jedem Klick auf eine der Schaltflächen sehen können, wo etwas in der Registry geändert wird.

Das ist der Ansatz. Du musst dann in der Registry schauen, wie die Änderung inhaltlich erfolgt und die gewünschten Einträge sammeln.

Die O&O-Software setzt derzeit laut Process Monitor 113 Änderungen um.

Diese musst Du zweierlei betrachten:
HKCU -> Der Current_USER_Registrybaum. Diese Änderungen willst Du später im Default User haben (s.o.)
HKLM -> Der Local_Machine-Baum. Diese Änderung gehören in die Systemregistrydateien.

Soweit klar?

Ich werde den Vorgang noch genau beschreiben und dann als Zusatz zu den beschriebenen Wegen einpflegen.

VG und Danke für die Anregung.

Eins muss aber klar sein:
Die Einstellungen sind dann per Standard erstmal aus. Nichts hindert daran, diese wieder anzustellen, wenn man nicht die Zugriffe auf die Werte blockiert.

Der Grund, warum ich das erwähne ist der: Ich habe beim kumulativen September-Update bemerkt, dass MS die Systemapps wieder zu aktivieren versucht. Cortana läuft nicht mit, aber der Edge ist wieder da, auch wenn er nicht korrekt eingerichtet ist. Eine Verlinkung im Startmenü ist aufgetaucht und er lässt sich sogar starten. Allerdings sind die Symbole nicht korrekt.
Schluckimpfung
Schluckimpfung 30.09.2019 um 16:36:32 Uhr
Goto Top
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.
beidermachtvongreyscull
beidermachtvongreyscull 30.09.2019 aktualisiert um 20:43:49 Uhr
Goto Top
Ich bin derzeit dabei, zwei Reg-Dateien aus den protokollierten Änderungen zu bauen.

Diese werde ich dann auf ein offline Install-Image anwenden und ausprobieren.

Damit diese Änderungen kontinuierlich angewendet werden, lasse ich beide Dateien mittels Shutdownscript jedes Mal über die lokale Policy anwenden.

Wenn man Änderungen machen will, muss man nur eine geeignete Version der reg-Datei ins Image packen und das wars.

Ich muss nur noch das Problem lösen, dass eine Datei, die nutzerbezogene zweimal angewendet werden muss: Einmal auf den Default User, einmal auf den Current.
beidermachtvongreyscull
beidermachtvongreyscull 16.10.2019 um 12:22:44 Uhr
Goto Top
So. Fertich!

Hive_Key_Current_User.reg
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\International\User Profile]
"HttpAcceptLanguageOptOut"=dword:00000001  

[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\FlipAhead]
"FPEnabled"=dword:00000000  

[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Main]
"DoNotTrack"=dword:00000001  
"ShowSearchSuggestionsGlobal"=dword:00000000  
"Use FormSuggest"="no"  
"OptimizeWindowsSearchResultsForScreenReaders"=dword:00000000  

[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\PhishingFilter]
"EnabledV9"=dword:00000000  

[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Privacy]
"EnableEncryptedMediaExtensions"=dword:00000000  

[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\ServiceUI\ShowSearchHistory]
@=dword:00000000

[HKEY_CURRENT_USER\Software\Microsoft\Input\TIPC]
"Enabled"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\InputPersonalization]
"RestrictImplicitInkCollection"=dword:00000001  
"RestrictImplicitTextCollection"=dword:00000001  

[HKEY_CURRENT_USER\Software\Microsoft\InputPersonalization\TrainedDataStore]
"HarvestContacts"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Personalization\Settings]
"AcceptedPrivacyPolicy"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Siuf\Rules]
"NumberOfSIUFInPeriod"=dword:00000000  
"PeriodInNanoSeconds"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Sensor\Permissions\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}]
"SensorPermissionState"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo]
"Enabled"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AppHost]
"EnableWebContentEvaluation"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications]
"GlobalUserDisabled"=dword:00000001  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager]
"FeatureManagementEnabled"=dword:00000000  
"OemPreInstalledAppsEnabled"=dword:00000001  
"PreInstalledAppsEnabled"=dword:00000001  
"RotatingLockScreenEnabled"=dword:00000000  
"RotatingLockScreenOverlayEnabled"=dword:00000000  
"SilentInstalledAppsEnabled"=dword:00000000  
"SoftLandingEnabled"=dword:00000000  
"SystemPaneSuggestionsEnabled"=dword:00000000  
"ContentDeliveryAllowed"=dword:00000001  
"SubscribedContent-338389Enabled"=dword:00000001  
"PreInstalledAppsEverEnabled"=dword:00000001  
"SubscribedContent-338388Enabled"=dword:00000001  
"RemediationRequired"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\DeliveryOptimization]
"SystemSettingsDownloadMode"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\DeviceAccess\Global\{2297E4E2-5DBE-466D-A12B-0F8286F0D9CA}]
"Value"="Deny"  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\DeviceAccess\Global\{52079E78-A92B-413F-B213-E8FE35712E72}]
"Value"="Deny"  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\DeviceAccess\Global\{A8804298-2D5F-42E3-9531-9C8C39EB29CE}]
"Value"="Deny"  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\DeviceAccess\Global\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}]
"Value"="Deny"  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\DeviceAccess\Global\LooselyCoupled]
"Value"="Deny"  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"Start_SearchFiles"=dword:00000002  
"ServerAdminUI"=dword:00000000  
"Hidden"=dword:00000001  
"ShowCompColor"=dword:00000001  
"HideFileExt"=dword:00000000  
"DontPrettyPath"=dword:00000000  
"ShowInfoTip"=dword:00000001  
"HideIcons"=dword:00000000  
"MapNetDrvBtn"=dword:00000000  
"Filter"=dword:00000000  
"ShowSuperHidden"=dword:00000000  
"Start_TrackDocs"=dword:00000000  
"ShowSyncProviderNotifications"=dword:00000000  
"Start_TrackProgs"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People]
"PeopleBand"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings]
"NOC_GLOBAL_SETTING_ALLOW_TOASTS_ABOVE_LOCK"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\PushNotifications]
"ToastEnabled"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search]
"CortanaConsent"=dword:00000000  
"SearchboxTaskbarMode"=dword:00000000  
"BingSearchEnabled"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync]
"SyncPolicy"=dword:00000005  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync\Groups\Accessibility]
"Enabled"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync\Groups\AppSync]
"Enabled"=dword:00000001  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync\Groups\BrowserSettings]
"Enabled"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync\Groups\Credentials]
"Enabled"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync\Groups\Language]
"Enabled"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync\Groups\Personalization]
"Enabled"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SettingSync\Groups\Windows]
"Enabled"=dword:00000000  

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Windows Search]
"CortanaConsent"=dword:00000000  

Hive_Key_Local_Machine.reg
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OneDrive]
"PreventNetworkTrafficPreUserSignIn"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\Bluetooth]
"AllowAdvertising"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\Browser]
"AllowAddressBarDropdown"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\System]
"AllowBuildPreview"=dword:00000002  
"AllowExperimentation"=dword:00000000  
"AllowLocation"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Preferences]
"VoiceActivationDefaultOn"=dword:00000000  
"ModelDownloadAllowed"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQMClient\Windows]
"CEIPEnable"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQMClient\Windows]
"CEIPEnable"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo]
"Enabled"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\appointments]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\broadFileSystemAccess]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\cellularData]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\chat]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\contacts]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\documentsLibrary]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\email]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\phoneCallHistory]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\picturesLibrary]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\userAccountInformation]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\userDataTasks]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\videosLibrary]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam]
"Value"="Deny"  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config]
"DODownloadMode"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Device Metadata]
"PreventDeviceMetadataFromNetwork"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection]
"AllowTelemetry"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Privacy]
"TailoredExperiencesWithDiagnosticDataEnabled"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate]
"AutoDownload"=dword:00000002  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\7971F918-A847-4430-9279-4A52D1EFE18D]
"RegisteredWithAU"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Biometrics]
"Enabled"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\MRT]
"DontReportInfectionInformation"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Speech]
"AllowSpeechModelUpdate"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender]
"DisableAntiSpyware"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet]
"SpyNetReporting"=dword:00000000  
"SubmitSamplesConsent"=dword:00000002  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Software Protection Platform]
"NoGenTicket"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat]
"DisableInventory"=dword:00000001  
"DisableUAR"=dword:00000001  
"AITEnable"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredUI]
"DisablePasswordReveal"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DataCollection]
"DoNotShowFeedbackNotifications"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization]
"DODownloadMode"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\HandwritingErrorReports]
"PreventHandwritingErrorReports"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors]
"DisableWindowsLocationProvider"=dword:00000001  
"DisableLocation"=dword:00000001  
"DisableSensors"=dword:00000001  
"DisableLocationScripting"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Maps]
"AutoDownloadAndUpdateMapData"=dword:00000000  
"AllowUntriggeredNetworkTrafficOnSettingsPage"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Messaging]
"AllowMessageSync"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\OneDrive]
"DisableFileSyncNGSC"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization]
"NoLockScreenCamera"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PreviewBuilds]
"EnableConfigFlighting"=dword:00000001  
"EnableExperimentation"=dword:00000000  
"AllowBuildPreview"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\TabletPC]
"PreventHandwritingDataSharing"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows Search]
"DisableWebSearch"=dword:00000001  
"AllowCloudSearch"=dword:00000000  
"AllowCortana"=dword:00000000  
"AllowSearchToUseLocation"=dword:00000000  
"ConnectedSearchUseWeb"=dword:00000000  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"ExcludeWUDriversInQualityUpdate"=dword:00000001  
"DeferUpgrade"=dword:00000001  
"DeferUpgradePeriod"=dword:00000000  
"DeferUpdatePeriod"=dword:00000000  
"PauseDeferrals"=dword:00000001  
"DisableOSUpgrade"=dword:00000001  
"DisableWindowsUpdateAccess"=dword:00000001  

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WMDRM]
"DisableOnline"=dword:00000001  

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\AutoLogger-Diagtrack-Listener]
"Start"=dword:00000000  

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DiagTrack]
"Start"=dword:00000004  

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmwappushservice]
"Start"=dword:00000004  

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lfsvc\Service\Configuration]
"Status"=dword:00000000  

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet]
"EnableActiveProbing"=dword:00000000  

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv]
"Start"=dword:00000004  

Wenn man in der O&O-Software alles ausschaltet, so dass man max. Schutz haben sollte, dann bekommt man u.a. diese Registry-Änderungen.

Jetzt kommt der Clu. Das reicht nicht aus!

Du kannst zwar durch solche Einstellungen einen Schutz erreichen, der ist aber nur vorübergehend. Rollst Du ein kumulatives Update aus, kann dieses die Einstellungen durchaus Microsoft-like wieder zurückstellen.

Ferner: Windows-Update hat einen Selbstheilungsmechanismus drin, den sih-client. Dieser wird vom Taskmanager regelmäßig abgefeuert. Wenn Du Dich also mal gewundert hast, dass ein deaktivierter Windows-Update-Dienst auf einmal doch hochgefahren war, dann kennst Du jetzt den Grund.

Den sih-Client kann man offline aus den geplanten Aufgaben löschen.
Dazu unter <MountDir>\Windows\System32\Tasks\Microsoft\Windows\WindowsUpdate die Jobdateien löschen.
Ferner unter Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks des Images den entsprechenden task raussuchen und rauswerfen.

Jetzt noch zwei Dinge:
Das REG-File für den Current-User muss einmalig angepasst werden auf den Pfad der eingehängten User_Registry (siehe Punkt 3.1.4.).
Damit werden diese Einstellungen lokal Default-Werte für jeden sich neu anmeldenden Benutzer.

Dauerhaftigkeit:
Um die Einstellungen dauerhaft zu machen, sollten die beiden Dateien mittels Shutdown- oder Startup-Script für die Maschinen-Einstellungen und Login-/Logout-Script für die Nutzereinstellungen angewendet werden.

Ich habe schon gesehen, dass sich das offline ins Image einbauen lässt, hab es aber noch nicht weiter geprüft. Dazu komme ich noch.
Schluckimpfung
Schluckimpfung 01.01.2020 um 20:15:18 Uhr
Goto Top
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:
reg add HKEY_LOCAL_MACHINE\WIM\SOFTWARE\Microsoft\Windows\CurrentVersion\Search /v SearchboxTaskbarMode /t REG_DWORD /d 0 /f
Die Aluhut-Einstellungen liegen aber in dieser Form vor:
[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
Dann funktioniert es.
beidermachtvongreyscull
beidermachtvongreyscull 01.01.2020 um 22:15:55 Uhr
Goto Top
Zitat von @Schluckimpfung:

Hallo und frohes Neujahr,

Hallo und Dir ebenfalls ein gutes neues Jahr!


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
Die Aluhut-Einstellungen liegen aber in dieser Form vor:
[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?

So:
reg add HKEY_LOCAL_MACHINE\WIM\SOFTWARE\Microsoft\OneDrive /v PreventNetworkTrafficPreUserSignIn /t REG_DWORD /d 1 /f

Die Registryeinstellung der local USer werden in dieser Datei gehalten: <mountdir>\Users\Default\ntuser.dat
Hieraus wird eine Initialkopie pro Benutzer erstellt.

Der Befehl
reg load HKEY_LOCAL_MACHINE\WIM <mountdir>\Users\Default\ntuser.dat
besagt: Registrybaum aus der Datei <mountdir>\Users\Default\ntuser.dat ist zu laden und in die Live-Registry unter HKEY_LOCAL_MACHINE\WIM einzuhängen.

Das mag verwirrend sein, aber ist möglich.

Die Maschineneinstellungen werden in den Dateien <mountdir>\windows\System32\config\SYSTEM und <mountdir>\windows\System32\config\SOFTWARE gespeichert.



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 ...

Danke Dir für die Info.

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
Dann funktioniert es.

Die Servicing Stacks müssen tatsächlich vorab integriert werden.

Im Schatten der Cumulativen Updates neige ich bei meinen Installationen dazu, Windowsupdates auszusetzen, da die CUs zu viel Krempel mitbringen, der danach wieder installiert ist, obwohl man ihn nicht haben will.

Ich prüfe derzeit NTLite und MSMG als Alternativen, um unerwünschte Pakete zu entfernen.
Schluckimpfung
Schluckimpfung 03.01.2020 um 17:18:50 Uhr
Goto Top
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:
reg load HKEY_LOCAL_MACHINE\WIM <mountdir>\Users\Default\ntuser.dat
Dann konnte ich alle Befehle fehlerfrei ausführen, egal in welchem Ast die Einträge landen sollen, Beispiel:
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.......
beidermachtvongreyscull
beidermachtvongreyscull 03.01.2020 aktualisiert um 17:49:04 Uhr
Goto Top
Zitat von @Schluckimpfung:

Hallo,

Hi,

Zitat von @Schluckimpfung:
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.

Danke für die Info.

Zitat von @Schluckimpfung:
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
Dann konnte ich alle Befehle fehlerfrei ausführen, egal in welchem Ast die Einträge landen sollen, Beispiel:
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.......

Nee. War nicht richtig. Und ja, klar geht das! Warum?

Die Erklärung ist, dass Du eine Registry nicht eigenständig unter Windows lädst, sondern sie immer der vorhandenen bereits geladenen anhängst.

Die Registry eines laufenden Windows (ONLINE) setzt sich aus diesen Dateien zusammen:

HKLM Unterschlüssel:Software: c:\windows\system32\config\SOFTWARE
HKLM Unterschlüssel:System: c:\windows\system32\config\SYSTEM
HKCU c:\users\"current user"\ntuser.dat

Die übrigen Schlüssel werden u.a. aus den Dateien abgeleitet. BSP HKCR. Den findest Du auch direkt HKLM-Software-Classes.

Du kannst den Registry-Teil eines Offline-Images an beliebiger Stelle der Life-Registry einhängen, aber eben nicht alleinig öffnen.
Du mountest ihn, wie Du auch das Offline-WIM-Image in einen Mountpath einhängst.

Und Du darfst nicht vergessen, dass Änderungen an der Offline-Registry dann auch über den richtigen Unterschlüssel adressiert werden müssen.

In Deinem Beispiel oben muss das so aussehen:

Du mountest den Registry-Baum für HKCU bzw. HKU->.DEFAULT mounten und in der Life-Registry unter HKLM\WIM einhängen.
reg load HKEY_LOCAL_MACHINE\WIM <mountdir>\Users\Default\ntuser.dat

Dann kannst Du folgende benutzerbezogene Registryeinstellungen wie folgt importieren:

reg add "**HKLM\WIM**\Control Panel\International\User Profile" /v "HttpAcceptLanguageOptOut" /t REG_DWORD /d "1" /f  
reg add "**HKLM\WIM**\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\FlipAhead" /v "FPEnabled" /t REG_DWORD /d "0" /f  

Dann schließt Du diesen Registry-Teil und hängst ihn mit
reg unload HKEY_LOCAL_MACHINE\WIM
wieder aus. Damit werden die Änderungen in der Datei "<mountdir>\Users\Default\ntuser.dat".

Jetzt hängst Du die Registry für die Maschine ein. Die Änderung soll in den Software-Schlüssel, als laden wir ihn:
reg load HKEY_LOCAL_MACHINE\WIM <mountdir>\windows\system32\config\SOFTWARE

Jetzt die passenden Befehle:
Reg add "**HKLM\WIM**\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\7971F918-A847-4430-9279-4A52D1EFE18D" /v "RegisteredWithAU" /t REG_DWORD /d "0" /f  
Reg add "**HKLM\WIM**\SOFTWARE\Policies\Microsoft\Biometrics" /v "Enabled" /t REG_DWORD /d "0" /f  

Danach auch diesen Teil wieder mit reg unload entladen.

Für den Befehl in Zeile 6 sieht es so aus:
Eine Änderung für HKLM->System, also:
reg load HKEY_LOCAL_MACHINE\WIM <mountdir>\windows\system32\config\**SYSTEM**

Der Befehl angepasst:
Reg add "HKLM\**WIM**\SYSTEM\CurrentControlSet\Services\wuauserv" /v "Start" /t REG_DWORD /d "4" /f  

Und wieder reg unload nutzen, um die Registry auszuhängen.


Denke Dir bitte die Sternchen in den Codezeilen weg! Ich hoffte damit, die Stellen, auf die es ankommt, besser hervorzuheben.
Schluckimpfung
Schluckimpfung 18.01.2020 um 13:49:49 Uhr
Goto Top
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.
beidermachtvongreyscull
beidermachtvongreyscull 18.01.2020 um 18:35:51 Uhr
Goto Top
Hi,

um Deine Frage zu beantworten:

Ja. Es ist egal, wo Du die entsprechende Datei einhängst.
Über Regedit bietet sich nur eine Möglichkeit, aber auch das ist ok.

Der Weg über Powershell entspricht dem, was ich oben beschrieben habe.
xSchizo
xSchizo 04.05.2020 um 07:51:31 Uhr
Goto Top
Grüß dich!

Habe wie in meinem anderen Thread wg. Startmenü XML File usw. geschrieben, deine Anleitung durchgearbeitet. Windows 10 1909.
Habe Cortana und Edge entfernt. Im Image später funktioniert die Windows Suche im Startmenü nicht.

Kannst du mir das verifizieren?

Danke dir

Viele Grüße
Henrik
beidermachtvongreyscull
beidermachtvongreyscull 04.05.2020 um 14:41:45 Uhr
Goto Top
Moin,

Ja, das kann ich.

Die Freiheit von Cortana zahlt man bis zu den 19xx-Versionen damit, dass die Suche nicht mehr nutzbar ist.

Deswegen beschreibe ich auch, wie das Suche-Feld in der Taskleiste von Anfang an ausgeblendet wird.

Ich hörte, Cortana soll mehr Richtung Office gehen, also bin ich auf die neuen Windows-Versionen gespannt.

Gruß
Bdmvg
xSchizo
xSchizo 04.05.2020 um 17:16:43 Uhr
Goto Top
Alles klar, danke dir. Dachte schon ich sehe den Wald vor lauter Bäumen nicht.

Wünsche dir einen schönen Abend!
beidermachtvongreyscull
beidermachtvongreyscull 04.05.2020 um 19:17:41 Uhr
Goto Top
Danke.

Den wünsch ich Dir auch!
Schluckimpfung
Schluckimpfung 21.11.2020 um 13:04:52 Uhr
Goto Top
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:
C:\Program Files (x86)\Microsoft\Edge\Application\xx.x.xxx.xx\setup.exe --uninstall --system-level --verbose-logging --force-uninstall
beidermachtvongreyscull
beidermachtvongreyscull 21.11.2020 aktualisiert um 23:28:47 Uhr
Goto Top
So geht's:

Du erstellst in der Registry des Images den DWord-Wert 1 mit Namen DoNotUpdateToEdgeWithChromium unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate

Dann erfolgt keine Installation.

Addendum:

Beim Slipstream muss ich gestehen, kommt es auf die Reihenfolge und die Art und Weise an, wie das Paket reinkommt.
Es kann sein, dass der Registry-Eintrag dann nicht helfen wird und Du das Paket erst sichtbar machen musst, bevor Du es nach dem Slipstream rauswerfen kannst.

Aber Vorsicht:
Die Paketverwaltung von Windows ist in meinen Augen der größte Rotz, den ich bisher gesehen habe. Da kann man sich schnell den Component-Store irreparabel zerschießen, wenn man die falsche Package raushaut.

Genauso führt die Anleitung leider nicht daran vorbei, dass z.B. Edge auch wieder installiert werden kann. Ich tüftele mich derzeit durch den SxS-Ordner durch und teste und sammle Erfahrung.

Sobald ich mir sicher bin, einen sauberen Weg gefunden zu haben, bring ich eine neue Anleitung zum Selbermachen raus.
Schluckimpfung
Schluckimpfung 30.03.2021 um 22:27:57 Uhr
Goto Top
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".
beidermachtvongreyscull
beidermachtvongreyscull 03.04.2021 um 19:06:02 Uhr
Goto Top
Hi,

in der Theorie ja. Aber in der Praxis wahrscheinlich nicht. Wenn Du Dir mit Install_Wim_Tweak eine Packages-Liste einer Pro-Version generierst, dann siehst Du da auch Enterprise-Pakete und Trial-Pakete drin.

Ich vermute derzeit, dass in Abhängigkeit vom eingegebenen Lizenzschlüssel entsprechende eingerichtet oder entfernt werden. Es kann also sein, dass eine Pro-Version sich so "uminstallieren" ließe und aus einer LTSC ggfs. dann eine Pro-Edition wird.

Ich habe allerdings keine Möglichkeit, dies eingehender zu testen.
beidermachtvongreyscull
beidermachtvongreyscull 04.04.2021 um 07:38:21 Uhr
Goto Top
Was ich derzeit versuche:

Ich versuche die Installation des Content Delivery Managers zu unterbinden.
In sofern wäre es interessant zu sehen, ob der in den LTSC-Versionen überhaupt drin ist.

Ich hab noch nicht rausbekommen, wie ich den entfernen kann, so dass die Installation immernoch durchläuft. Diese Systemapp ist leider verpflichtend, wie es scheint.
Schluckimpfung
Schluckimpfung 04.04.2021 um 12:44:54 Uhr
Goto Top
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.
beidermachtvongreyscull
beidermachtvongreyscull 04.04.2021 um 17:38:11 Uhr
Goto Top
Nein.

Ich habe keine Downloadmöglichkeit. Meinem letzten Kenntnisstand nach, kommt man da nur über das VLSC dran.
Schluckimpfung
Schluckimpfung 05.04.2021 um 01:53:14 Uhr
Goto Top
Versuchs mal dort, eine Testinstallation hatte jedenfalls die beschriebene Version:
https://isofiles.bd581e55.workers.dev/Windows%2010/Windows%2010%20Enterprise%20LTSC%202019/17763.316%20-%20February%202020/
beidermachtvongreyscull
beidermachtvongreyscull 05.04.2021 um 07:15:16 Uhr
Goto Top
Der Wahnsinn!
Vielen Dank.

Dieses Repo kannte ich nicht und hätte es wohl auch nicht gefunden. face-smile