最近,经常发现有用户计算机因恶意软件导致无法正常显示隐藏文件。跟踪注册表发现,设置显示所有文件时,HKCR/Software/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Hidden的值被设置成了字符串"0"。导致设置无法生效,正常情况应该为DWORD类型,值为1。
检查注册表发现,HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/SHOWALL/CheckedValue被修改成了"0",删除该值,并重建一DWORD类型,值为1的CheckedValue后恢复正常。
固导出正常注册表内容如下,保存为注册表文件(如showAll.reg),导入即可恢复。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/SHOWALL]
"RegPath"="Software//Microsoft//Windows//CurrentVersion//Explorer//Advanced"
"Text"="@shell32.dll,-30500"
"Type"="radio"
"CheckedValue"=dword:00000001
"ValueName"="Hidden"
"DefaultValue"=dword:00000002
"HKeyRoot"=dword:80000001
"HelpID"="shell.hlp#51105"
注:HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder下存有文件夹选项中的设置,如果有其它类似问题,如文件夹选项中少了某些项目,可到其它正常计算机上导出,在问题计算机上导入即可恢复。
20061007:今日发现另一类似问题,其修改的不是上述的"CheckedValue",而是"ValueName",将"Hidden"后面加了个空格,导致修改后,显示和不显示都选择上了。同样,我们把"ValueName"值改回来后即可恢复正常(同样我们可以导入上述注册表值即可。
200705010:发现有些问题计算机中,文件夹选现中的“显示系统文件”功能也被利用。故导出正常设置的注册表内容,附加到上一段注册表文件即可:
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/SuperHidden]
"Type"="checkbox"
"Text"="@shell32.dll,-30508"
"WarningIfNotDefault"="@shell32.dll,-28964"
"HKeyRoot"=dword:80000001
"RegPath"="Software//Microsoft//Windows//CurrentVersion//Explorer//Advanced"
"ValueName"="ShowSuperHidden"
"CheckedValue"=dword:00000000
"UncheckedValue"=dword:00000001
"DefaultValue"=dword:00000000
"HelpID"="shell.hlp#51103"