Jump to content

Anwendung zum Öffnen von PDF-Dateien anpassen


Direkt zur Lösung Gelöst von MurdocX,

Empfohlene Beiträge

Geschrieben

Hallo zusammen

 

Eine vermeintlich einfache Aufgabe beschäftigt mich nun schon mehrere Stunden... Die Benutzer sollen den Edge als PDF-Viewer zugewiesen bekommen. Dies soll für alle neuen Benutzer gelten und für die bestehenden Benutzer einmalig gesetzt werden. Danach dürfen sie eine andere Anwendung auswählen, wenn sie möchten.

 

Den Standard für neue Benutzer festlegen ist mit "Import-DefaultAppAssociations" kein Problem.

 

Für die bestehenden Benutzer habe ich gedacht, ich lösche einmalig den Schlüssel "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice". Manuell mit Regedit hat das einwandfrei funktioniert: Es wurde danach der Systemstandard verwendet.

 

Also eine GPP erstellt mit "einmal ausführen" => kein Erfolg. "Remove-Item" im Anmeldescript => Zugriff verweigert.

 

Die Einschränkung mit dem Hash war mir bekannt. Aber ich will doch keine andere Anwendung setzen, sondern nur die Zuordnung einmalig aufheben. Eine Recherche hat mich zum "User Choice Protection Driver" geführt, der hier der Spielverderber zu sein scheint. Gefunden habe ich auch diverse mehr oder weniger abenteuerliche "Tricks".

 

Die Problematik, dass Anwendungen sich nicht ungefragt mit Dateitypen verknüpfen können sollen, ist klar. Aber Microsoft hat doch sicher einen offiziellen Weg vorgesehen, wie der Admin die Zuordnungen verwalten kann?

 

Wie macht ihr das?

 

Besten Dank für eure Tipps!

Geschrieben

Moin,

 

du bist dann vermutlich auch über diesen Beitrag gestolpert: UserChoice Protection Driver – UCPD.sys – the kolbicz blog

 

Da wäre eine "Lösung" drin aus der Kategorie "Tricks". Letztlich Dienst und Task deaktivieren. Alternativ müsstest du dir ein Angebot für SetUserFTA – THE file type association utility einholen. Da sollte dann ja auch Support inkludiert sein bzw. fixes, falls MS erneut Anpassungen vornimmt. In dem ersten Link ist ja auch verlinkt, dass der DEM FTA von VMware oder auch Ivanti das gleiche Problem haben. hier wäre die Frage, wie VMware das mit dem "UCPD-fix.cmd" lösen.

 

HTH

Jan

Geschrieben
vor einer Stunde schrieb testperson:

du bist dann vermutlich auch über diesen Beitrag gestolpert: UserChoice Protection Driver – UCPD.sys – the kolbicz blog

Danke! Das hatte ich gesehen, aber ich habe gehofft, dass es eine offizielle Lösung gibt. Dass man UCPD irgendwie kenntlich machen kann, dass die Änderung von der GPO kommt und nicht einer aufdringlichen Anwendung.

 

vor einer Stunde schrieb testperson:

In dem ersten Link ist ja auch verlinkt, dass der DEM FTA von VMware oder auch Ivanti das gleiche Problem haben. hier wäre die Frage, wie VMware das mit dem "UCPD-fix.cmd" lösen.

Hier habe ich etwas gefunden: https://github.com/cloudskytian/WinEU/blob/main/UCPD-fix.cmd

 

Es scheint, als würden sie die rundll32.exe an einen anderen Ort kopieren und umbenennen. Dann haben sie eine von Microsoft signierte EXE, die DLLs ausführen kann und nicht auf der Blacklist vom UCPD steht. Dazu eine eigene DLL, welche die Einstellungen vornimmt. Das lässt sich leicht nachbauen. So leicht, dass es als Beispiel dient, dass solche "Schutzmassnahmen" nur sinnlosen Aufwand generieren...

  • Danke 1
Geschrieben
vor 11 Minuten schrieb mwiederkehr:

Es scheint, als würden sie die rundll32.exe an einen anderen Ort kopieren und umbenennen.

Jetzt wo du es schreibst, mache ich das doch in einem Intune Script selber mit der reg.exe 😅

 

Write-Output "Disable Widgets"
Copy-Item -Path (Get-Command -Name reg.exe).Source `
    -Destination "$env:TEMP\reg1.exe" `
    -Confirm:$false `
    -Force
Invoke-Expression -Command "$env:TEMP\reg1.exe add `"HKLM\DEFAULTUser\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced`" /v TaskbarDa /t REG_DWORD /d 0 /f"
Remove-Item -Path "$env:TEMP\reg1.exe" `
    -Confirm:$false `
    -Force

 

Geschrieben
vor 5 Stunden schrieb testperson:

Jetzt wo du es schreibst, mache ich das doch in einem Intune Script selber mit der reg.exe 😅

Wie gut, dass mittlerweile der Defender dagegenhalten kann :D

ASR: "Block use of copied or impersonated system tools"

 

AFAIR habe ich das damals gleich ins Image mit eingebaut. 

How to configure file associations for IT Pros | Microsoft Community Hub

 

Alternativ würde ich das als GPO verteilen.

Eine Referenz gibts auch lokal: "C:\Windows\System32\OEMDefaultAssociations.xml"

 

vor 5 Stunden schrieb mwiederkehr:

Das hatte ich gesehen, aber ich habe gehofft, dass es eine offizielle Lösung gibt.

Ja, z.B hier: Computer > Administrative Vorlagen > Windows Komponenten > Datei-Explorer > "Konfigurationsdatei für Standardzuordnungen festlegen"

 

Sofern einmal ein Standard gesetzt werden soll, den der User dann frei ändern kann, habe ich leider auch keine Lösung.

Geschrieben
Am 8.4.2026 um 20:36 schrieb MurdocX:

Wie gut, dass mittlerweile der Defender dagegenhalten kann :D

ASR: "Block use of copied or impersonated system tools"

Gut ist relativ... :-) Der Trick mit der reg1.exe hat auf jeden Fall nicht mehr funktioniert.

 

Am 8.4.2026 um 20:36 schrieb MurdocX:

Ja, z.B hier: Computer > Administrative Vorlagen > Windows Komponenten > Datei-Explorer > "Konfigurationsdatei für Standardzuordnungen festlegen"

Das setzt den Standard, aber die Benutzer können selbst eine andere Anwendung wählen. Das wäre in diesem Fall egal.

 

Gesucht ist eine Lösung, um die Zuordnung bei allen bestehenden Benutzern zurückzusetzen.

  • Beste Lösung
Geschrieben (bearbeitet)
vor 54 Minuten schrieb mwiederkehr:

Gesucht ist eine Lösung, um die Zuordnung bei allen bestehenden Benutzern zurückzusetzen.

 

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

Zitat

Please note the following registry parameters:

  • ProgId – this is the identifier of the registered app to open this file type. This app ID is specified in the XML file. If a long identifier is specified instead of the application name, then the file association with the modern UWP (Metro-style) application is configured. Make sure this UWP app has not been removed from the Windows image;
  • Hash – a hash value that is automatically generated to validate the file association with the program. The presence of this hash ensures that the user or administrator (via the GPO) has configured this file mapping. This security mechanism is needed to protect users from malware that can change file associations without the user’s approval.

 

registry: fileexts userchoice assotiations

 

If you try to manually change the ProgId registry value and assign another program, the Hash value will no longer be valid. In this case, Windows will automatically reset the file association settings to the default state and the user will see a notification:

 

bearbeitet von MurdocX
Add Link + ProgID

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...