有个同事的所有快捷方式全部变成了Word的图标,点击任何快捷方式会打开word.所有Docx结尾的文档图标全部变成了写字板的图标,打开docx文件都会打开写字板,关键有个更奇怪的地方,Lync2010的快捷方式图标显示为画图程序,Adobe Acrobat的图标也是画图程序。

p_w_picpath

Troubleshooting 错乱的图标_第1张图片

OK ,图标错乱,一般是文件关联出错导致,快捷方式文件结尾为lnk ,因此找到lnk的默认文件关联设置应该可以解决快捷方式图标问题,docx的问题也是一样。

网上找到一个Fix LNK的注册表,发现了这句是关键,照本宣科也发现docx 的这个地方设置的也有问题,删除下面两个地方的注册表后,杀掉explorer.exe ,重新运行explorer.exe 进程后,快捷方式和Docx的文件图标都正常了

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.LNK\UserChoice]

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.docx\UserChoice]

现在还剩下Lync2010的图标还有Acrobat 9 的一系列图标还是画图程序的图标,百思不得其解,在这些快捷方式上点击右键发现target 都是灰色的,这种LNK文件和office 的一系列图标类似,如下图(目标、打开文件位置、更改图标都是灰色的)

Troubleshooting 错乱的图标_第2张图片

查找资料发现这个这个链接,发现这种快捷方式原来是windows installer 的功能,叫advertised shortcut,里面还提供了一个脚本。

http://superuser.com/questions/263505/how-do-i-find-the-target-of-an-advertised-shortcut

Option Explicit
Dim MSITarget

OnErrorResumeNext' just some simple error handling for purposes of this exampleIf wscript.arguments.count = 1 Then' did actually pass an MSI advertised shortcut? Or, at least, a parameter that could be such a thing?With CreateObject("WindowsInstaller.Installer")
      Set MSITarget = .ShortcutTarget(wscript.arguments(0))
      ' 下面三行是自己加的
  wscript.echo MSITarget.StringData(1)
      wscript.echo MSITarget.StringData(2)
      wscript.echo MSITarget.StringData(3)
      If Err = 0 then MsgBox .ComponentPath(MSITarget.StringData(1), MSITarget.StringData(3))
      Else 
         MsgBox wscript.arguments(0) & vbcrlf & "is not a legitimate MSI shortcut file or could not be found"EndIfEndWithEndIfOnErrorGoto 0

对Office的快捷方式用上面的vbs查询下信息,发现和WordFiles 有关系,我也用这个脚本对Lync2010的快捷方式查询下,竟然发现和PBrush有关搜索注册表查询pbrush,找到下面这个位置,删除这个注册表设置后,杀掉Explorer.exe,然后重新运行Explorer.exe ,问题解决。 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ico\UserChoice "Progid"="PBrush"

p_w_picpath