Nastavení asociací typů souborů ve Windows 10

Blog

 
 Jan Žák

Jistě jste již zaregistrovali, že Windows 10 se (zhruba od verze 1803) urputně brání programově řízeným změnám asociací typů souborů. Jedná se o ochranu proti „unesení“ asociace typu souboru a jako každé podobné zvýšení úrovně zabezpečení lehce komplikuje pracovní den typického administrátora.

Pozn.: Dnes se nebudeme zabývat možností importu kompletního XML souboru, jak je popsáno např. na https://docs.microsoft.com/cs-cz/internet-explorer/ie11-deploy-guide/set-the-default-browser-using-group-policy. XML s definicí asociací lze použít v rámci „task sequence“ v SCCM nebo přímo importovat v rámci GPO, tato metoda bohužel ne vždy funguje ideálně, a také neumožňuje specifičtější možnosti konfigurace pro koncové uživatele.

Část první – jak to (ne)funguje

Pojďme se tedy nejdříve podívat, jak se Windows 10 chovají při změně asociace souborů uživatelem. Jako příklad si zvolíme oblíbeného kandidáta – soubor s příponou .PDF.

V okamžiku, kdy uživatel v nastavení počítače vybere preferovanou aplikaci pro konkrétní typ souboru, systém zapíše předvolbu do registru v cestě

Počítač\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.pdf\UserChoice

img

Obrázek 1 - Registr po nastavení asociace typu souboru uživatelem

Pokud byste tento postup chtěli zautomatizovat a vyexportované nastavení z registru přidat pouhým importem, systém vám tuto operaci neumožní, pokud již záznam pro typ souboru existuje.

img

Obrázek 2 – Pokus o přímý import exportovaného .reg souboru

Zkusíme to obejít, smažeme celý klíč a znovu naimportujeme uložený .reg soubor.

Systém se opět bude bránit a hodnotu v registru přepíše vlastním nastavením. V našem případě změní asociaci .pdf souboru na prohlížeč Edge. Tato část je vám možná povědomá, na internetu lze najít celou řadu diskuzí, kde se zoufalí administrátoři snaží vypořádat se samovolným nastavováním asociací souborů pro Edge.

img

Obrázek 3 – Cílový stav po importu .reg souboru

Registr tedy obsahuje zcela jiné nastavení než to, které jsme očekávali.

Pokud budeme celou operaci monitorovat, rychle najdeme našeho záškodníka. Systém totiž před každou změnou asociace vygeneruje unikátní hash, který nejdříve přidá do registru. Následující změna asociace musí s tímto hashem souhlasit. Pokud hash nesouhlasí, systém resetuje asociaci podle vlastního uvážení.

img

Obrázek 4 – Cílový stav po importu .reg souboru

Část druhá – SetUserFTA

Když už tedy víme, že je potřeba nejdříve spočítat hash, zbývá zjistit, jak na to.

Špatná zpráva: tento proces není zdokumentován, postup výpočtu tedy nemáme k dispozici.

Dobrá zpráva: Christoph Kolbicz pomocí reverzního inženýrství přišel na to, jak celý proces funguje a dal světu k dispozici nástroj SetUserFTA

Část třetí – příprava a testování

Řekněme tedy, že naší cílem bude uživatelům, kteří již mají nainstalován Adobe Acrobat Reader, jednorázově nastavit asociaci soborů .pdf s tímto programem. Uživatel tedy předvolbu, kterou ale bude mít možnost kdykoliv změnit v nastavení Windows 10.

Na vzorovém počítači nejprve zjistíme název přidružení typu souboru, v našem případě tedy příkazem „assoc .pdf“.

img

Obrázek 5 – Získání názvu asociace pro .pdf

Získali jsme tedy název „AcroExch.Document.DC“, se kterým budeme dále pracovat na cílovém počítači, resp. v profilu uživatele, ve kterém je potřeba asociaci upravit.

img

Obrázek 6 – Původní asociace souboru (Edge)

Po stažení a rozbalení utility z http://kolbi.cz/SetUserFTA.zip pak můžeme spustit příkaz

SetUserFTA.exe .pdf AcroExch.Document.DC

img

Obrázek 7 – Nová asociace souboru (AR)

Při kontrole registru je nyní vše v pořádku.

img

Obrázek 8 – Korektní úprava asociace souboru v registru

Část čtvrtá – nasazení v GPO

Nyní už zbývá jen rozhodnout, jakým způsobem budeme doručovat nastavení koncovým uživatelům.

Nástroj je potřeba spustit v kontextu uživatele, který má nastavení obdržet.

SetUserFTA umožňuje

  • Nastavit asociaci pro jediný typ souboru.
  • Nastavit asociaci pro více souborů (použijeme konfigurační soubor).
  • Nastavit asociaci souboru pouze pro členy bezpečnostní skupiny (jméno skupiny je použit jako parametr).

Popis možností a ukázky konfiguračních souborů naleznete na Christophově blogu.

Naším cílem je nastavit asociaci jednorázově, proto zvolíme zápis do registru v sekci „RunOnce“, pro vaše prostředí samozřejmě můžete zvolit další metody (Immediate Scheduled Task, Logon Script atd.)

Podstatné je nástroj zpřístupnit uživatelům, pozor na spouštění přímo ze sdílené síťové složky, které může vést k chybovým hláškám. Soubor totiž není digitálně podepsán a spouštění ze sítě tedy nemusí být vždy možné. V takovém případě je nejjednodušší způsob nakopírovat soubor např. pomocí GPO cílené na počítače s Windows 10.

Pokud zvolíte spouštění přímo ze síťového umístění, může konfigurace vaší politiky vypadat např. takto:

V sekci „User Configuration/Preferences/Windows Settings/Registry“ přidáme novou položku (Create):

  1. Hive: HKCU
  2. Key Path: Software\Microsoft\Windows\CurrentVersion\RunOnce
  3. Value name: SetUserFta
  4. Value type: REG_SZ
  5. Value data: "\\ \SetUserFTA.exe .pdf AcroExch.Document.DC"
  6. Zaškrtneme „Apply once and do not reapply“

img

Obrázek 9 – Ukázka přípravy GPO (část 1)

img

Obrázek 10 – Ukázka přípravy GPO (část 2)

Pro dnešek máme hotovo, nakonec to vlastně ani nebylo tak složité, co myslíte?

Sdílej v médiích

Kontakt

Nenašli jste, co hledáte? Pošlete nám zprávu a zůstaneme s vámi ve spojení.

* Vyžadované pole

Osobní data použijeme pouze pro vypracování odpovědi na dotaz. Pravidla zpracování osobních údajů

map us
map eu