Disassembler

Artificial intelligence is no match for natural stupidity.
30září2015

Ukládání nastavení plochy ve Windows 10


...aneb ESET a jeho preset způsobí reset na Windows deset.

V posledních pár týdnech se mi z různých stran seběhla hromada dotazů týkajících se Win10. Jeden z nich však zazněl vícekrát a tím upoutal mou pozornost. To si tak změníte velikost ikon na ploše nebo v adresáři, vypnete automatické řazení, přeskládáte si ikony podle svého a večer vypnete počítač. Druhý den jej zapnete a k vašemu údivu zjistíte, že máte plochu v původním stavu, seřazenou a s malými ikonami.

Quis custodiet ipsos custodes?


Všichni, kdo s tímto problémem přišli, měli vyjma Windows 10 a popisovaného problému společnou ještě jednu věc. Všichni totiž používali produkty od ESETu. Na tom samozřejmě není nic špatného. ESETí NOD32 Antivir řadím do skupiny těch lepších, protože poměr rychlost/detekce (nebo chcete-li zpomalení/užitečnost) je velice příznivá. Starší verze těchto produktů se však nepohodly s nastavením Windows 10 a stalo se, že některé registry byly hlídacími produkty pozměněny, aniž by k tomu byl pádný důvod. Jedním takovým registrem bylo i nastavení úložiště MRU (Most Recently Used) položek, do kterého si Windows schovávají právě takové věci jako uspořádání plochy nebo nastavení velikosti ikon v adresářích.

Oprava opravy


Odstranění toho problému je relativně jednoduché, ale nezkušeným uživatelům doporučuji svěřit opravu do rukou zkušenějších, protože se opět jedná o zásah do chráněných registrů (tedy spravovatelných pouze systémovými uživateli SYSTEM a TrustedInstaller). Chcete-li opravu provést manuálně, je třeba nastartovat regedit a u těchto dvou klíčů

HKEY_CLASSES_ROOT\CLSID\{42aedc87-2188-41fd-b9a3-0c966feabec1}\InProcServer32\
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{42aedc87-2188-41fd-b9a3-0c966feabec1}\InProcServer32\

Nejprve změnit vlastníka a oprávnění, abyste vůbec mohli měnit jejich hodnoty a výchozí hodnotu pak nastavit na

%SystemRoot%\system32\windows.storage.dll

ESETí produkty tuto hodnotu nastavují na %SystemRoot%\SysWow64\shell32.dll, což je hodnota platná po Win7 a Win8, ale pro Win10 už nikoliv.

Máte-li, stejně jako já, úchylku v automatizaci, můžete místo ručního zásahu použít PowerShell. V takovém případě musíte využít SeTakeOwnershipPrivilege skript za který se pak už jen zavěsí

If (!(Test-Path "HKCR:")) {
    New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
}

RegTakeOwn "HKCR:\CLSID\{42aedc87-2188-41fd-b9a3-0c966feabec1}\InProcServer32"
RegTakeOwn "HKCR:\Wow6432Node\CLSID\{42aedc87-2188-41fd-b9a3-0c966feabec1}\InProcServer32"
Set-ItemProperty -Path "HKCR:\CLSID\{42aedc87-2188-41fd-b9a3-0c966feabec1}\InProcServer32" -Name "(Default)" -Type ExpandString -Value "%SystemRoot%\system32\windows.storage.dll"
Set-ItemProperty -Path "HKCR:\Wow6432Node\CLSID\{42aedc87-2188-41fd-b9a3-0c966feabec1}\InProcServer32" -Name "(Default)" -Type ExpandString -Value "%SystemRoot%\system32\windows.storage.dll"

A ostatní, PowerShellem nepolíbení, ale lační automatizace, mohou použít baťáky stažitelné po bezplatné registraci odsud: http://www.tenforums.com/general-discussion/17175-windows-10-folder-view-settings-desktop-icon-positions-not-saving.html

Pak je samozřejmě potřeba zařízení restartovat, aby se oprava projevila a Windows začaly nastavení adresářů korektně ukládat.

Na závěr nutno podotknout, že ESET o problémech ví a na své straně již nápravu sjednal. V době, kdy jsem naposledy zjišťoval informace, oprava ještě nebyla ve stabilní větvi aktualizací, takže pokud se do ní ještě nedostala, očekávám ji každou chvíli.