Alternativ Skripten. Soweit ich das gelesen habe, werden entfernte UserChoice wieder autom. erstellt. Überschreiben geht nicht, da diese "protected" sind. Vermutlich wird das Überschreiben den ähnlichen oder gleichen Effekt haben wie löschen. Das muss man einfach probieren.
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.3fr\UserChoice"
Danach gelten wieder die System Standards. Die wiederum du mit DISM vorher auch setzten kannst, falls nötig.
✅ EDIT: Ich habs bei mir nachgestellt. Funktioniert! Wenn "UserChoiceLatest" und "UserChoice" gelöscht werden, gilt nach einem Neustart der Systemstandard. Wenn die Anwendung dann gewählt wird, erstellt Windows "UserChoiceLatest" mit den aktuellen Einträgen wieder.
$profiles = Get-ChildItem "C:\Users" -Directory | Where-Object {
Test-Path "$($_.FullName)\NTUSER.DAT"
}
foreach ($profile in $profiles) {
$hivePath = "$($profile.FullName)\NTUSER.DAT"
$hiveName = "HKU\Temp_$($profile.Name)"
reg load $hiveName $hivePath 2>$null
if ($LASTEXITCODE -eq 0) {
# Hier deine Änderungen, z.B.:
Set-ItemProperty -Path "Registry::$hiveName\Software\MeineApp" `
-Name "Setting" -Value 1 -ErrorAction SilentlyContinue
[gc]::Collect()
reg unload $hiveName
}
}
Zitat: Changing Default File Associations in Windows 10 and 11 | Windows OS Hub