Wie können wir helfen?

Kategorien
Inhalt

Windows 10 GPO Standardprogramme festlegen

Navigation:
< zurück

Gilt für: Windows 10, Windows Server 2016, Windows Server 2019

Unter Windows 10 kann der Benutzer unter „Einstellungen > Apps > Standard-Apps“ Programme als Standard zuordnen. Doch in einer Unternehmensumgebung ist meist eine zentrale Richtlinie für die Festlegung der Standardprogramme erwünscht.

Die zentrale Festlegung für Windows 10 bei folgenden Standardprogrammen:

  • Adobe Acrobat Reader DC
  • Windows-Fotoanzeige
  • Windows Media Player

Seit Windows 8 und Windows Server 2012 ist es möglich, Dateitypen einem Standardprogramm mittels GPO in einer Windows-Domäne zuzuordnen. Die gleiche Richtlinie gilt für Windows 8.1, Windows Server 2012 R2, Windows 10, Windows Server 2016 und Windows Server 2019.

1. Manuelle Festlegung der Standardprogramme an einem Test-Client

Einstellungen> Apps > Standard-Apps > Standardeinstellungen nach App festlegen > Adobe Acrobat Reader DC

Adobe Acrobate Reader DC 
Dateityp- und Protokollzuordnungen
Windows 10 GPO Standardprogramme festlegen 5

Einstellungen> Apps > Standard-Apps > Standardeinstellungen nach App festlegen > Windows-Fotoanzeige

Die Zuordnung der Dateitypen wurde unter Windows 10 für die Windows-Fotoanzeige auf .tif und .tiff reduziert.

In einer administrativen PowerShell können diese Werte in der Registry entsprechend angepasst werden:

$HKLMM = "HKLM:\SOFTWARE\Microsoft"
$PF = $env:ProgramFiles
New-PSDrive -Name HKCR Registry HKEY_CLASSES_ROOT -ErrorAction SilentlyContinue | Out-Null
$Arr1 = "Bitmap", "Gif", "JFIF", "Jpeg", "Png", "Wdp"
$Arr2 = "bmp", "gif", "dib", "jfif", "jpe", "jpg", "jxr", "wdp", "tif", "tiff"
$Name1 = "Windows Photo Viewer"
$Name2 = "PhotoViewer.FileAssoc"
$Name3 = "$PF\$Name1\PhotoViewer.dll"
$Reg1 = "$HKLMM\$Name1\Capabilities\FileAssociations"
if (!(Test-Path $Reg1)) { New-Item -Force -Path $Reg1 }
$Arr1 | ForEach-Object {
    $Reg = "HKCR:\$Name2.$_"
    $Reg1Arr1 = "$Reg\DefaultIcon"
    $Reg2Arr1 = "$Reg\shell\open"
    $Reg3Arr1 = "$Reg2Arr1\command"
    $Reg4Arr1 = "$Reg2Arr1\DropTarget"
    if ($_ -like "B*") { $ValFTN = "3056"; $ValDI = "70" }
    if ($_ -like "G*") { $ValFTN = "3057"; $ValDI = "83" }
    if ($_ -like "J*") { $ValFTN = "3055"; $ValDI = "72" }
    if ($_ -like "P*") { $ValFTN = "3057"; $ValDI = "71" }
    if ($_ -like "W*") { $ValFTN = $null; $ValDI = "70" }
    if (!(Test-Path $Reg)) { New-Item -Force -Path $Reg }
    if (!(Test-Path $Reg1Arr1)) { New-Item -Force -Path $Reg1Arr1 }
    if (!(Test-Path $Reg2Arr1)) { New-Item -Force -Path $Reg2Arr1 }
    if (!(Test-Path $Reg3Arr1)) { New-Item -Force -Path $Reg3Arr1 }
    if (!(Test-Path $Reg4Arr1)) { New-Item -Force -Path $Reg4Arr1 }
    (New-ItemProperty -Path $Reg -Force -Name "EditFlags" -PropertyType DWORD -Value 65536).PSPath
    (New-ItemProperty -Path $Reg -Force -Name "ImageOptionFlags" -PropertyType DWORD -Value 1).PSPath
    if ($ValFTN) { (New-ItemProperty -Path $Reg -Force -Name "FriendlyTypeName" -PropertyType ExpandString -Value "@$Name3,-$ValFTN").PSPath }
    if ($ValDI) { (New-ItemProperty -Path $Reg1Arr1 -Force -Name "(Default)" -PropertyType String -Value "$SR32\imageres.dll,-$ValDI").PSPath }
    (New-ItemProperty -Path $Reg2Arr1 -Force -Name "MuiVerb" -PropertyType ExpandString -Value "@$Name3,-3043").PSPath
    (New-ItemProperty -Path $Reg3Arr1 -Force -Name "(Default)" -PropertyType ExpandString -Value "$SR32\rundll32.exe ""$Name3"", ImageView_Fullscreen %1").PSPath
    (New-ItemProperty -Path $Reg4Arr1 -Force -Name "Clsid" -PropertyType String -Value "{FFE2A43C-56B9-4bf5-9A79-CC6D4285608A}").PSPath
}
$Arr2 | ForEach-Object {
    if ($_ -like "b*" -or $_ -like "d*") { $ValST = "Bitmap" }
    if ($_ -like "g*") { $ValST = "Gif" }
    if ($_ -like "jf*") { $ValST = "JFIF" }
    if ($_ -like "jp*" -or $_ -like "jx*") { $ValST = "Jpeg" }
    if ($_ -like "p*") { $ValST = "Png" }
    if ($_ -like "t*") { $ValST = "Tiff" }
    if ($_ -like "w*") { $ValST = "Wdp" }
    (New-ItemProperty -Path $Reg1 -Force -Name ".$_" -PropertyType String -Value "$Name2.$ValST").PSPath
}
Windows-Fotoanzeige 
Dateityp- und Protokollzuordnungen
Windows 10 GPO Standardprogramme festlegen 6

Einstellungen> Apps > Standard-Apps > Standardeinstellungen nach App festlegen > Windows Media Player

Windows Media Player
Dateityp- und Protokollzurdnungen
Windows 10 GPO Standardprogramme festlegen 7

2. Export der Einstellungen für die Standardanwendungszuordnungen mittels DISM

Mit einer administrativen PowerShell muss die Einstellungen für die Standardanwendungszuordnungen in eine XML-Datei auf einem Server-Share (Empfehlung DFS-Verzeichnis) exportiert werden.

Dism /Online /Export-DefaultAppAssociations:\\Server\Share\AppAssoc.XML

3. Anpassung der exportierten XML-Datei

Die XML-Datei sollte nach den notwendigen Dateitypen angepasst werden. Es sollten die Zeilen der gewünschten Standardprogramme erhalten bleiben:

  • Adobe Acrobat Reader DC
  • Windows-Fotoanzeige
  • Windows Media Player

4. GPO aktivieren

Computerkonfiguration\Richtlinien\Administrative Vorlagen\Windows-Komponenten\Datei-Explorer\Konfigurationsdatei für Standartzuordnungen festlegen.

Konfogurationsdatei für Standartzuordnungen festlegen
Windows 10 GPO Standardprogramme festlegen 8

Weitere Informationen:

2 Kommentare

  1. mw

    1. Ist dieses Vorgehen auch für Windows 10 22h2 und Windows 11 23H2 noch aktuell?
    2. Werden diese Standard-Werte nur für neue Benutzerkonten übernommen oder auch für bestehende?
    3. Lassen sich hier “nur” die Datei und Protokoll-Zuordnungen so setzten oder auch die “Standard-Apps” ?

    Antworten
    • Thomas Hetznecker

      1: Das Vorgehen ist so nach wie vor anwendbar.
      2: Die GPO wird für alle Objekte zu welcher Sie zugeordnet ist angewandt – ob bestehend oder neu spielt keine Rolle.
      3: Die Standard-Apps sind nur ein grafisches Overlay für die darunterliegende Protokoll-Datei Zuordnung.

Kommentar absenden

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert