我正在尝试修改计算机上的所有快捷方式。该脚本工作正常,但时不时会抛出一个错误,即对象的 .Target 属性不可用。由于我的查询只查找扩展名为 .lnk 的文件,因此绝不应该是这种情况。(有关此错误的更多详细信息,您可以在此处查看 MS 文档:http ://technet.microsoft.com/en-us/library/ff406382.aspx#H25 )
有问题的脚本:
strComputer = "."
Set wshShell = WScript.CreateObject("WScript.Shell")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery("Select * from CIM_DataFile WHERE Extension = 'lnk' AND Drive = 'C:'")
For Each objFile in colFiles
If InStr(1, ucase(objFile.Target), "METER.EXE") Then
Set objShortcut = wshShell.CreateShortcut(objFile.Name)
Wscript.Echo "FIXING: " & objShortcut.TargetPath
End If
Next
好奇的:这个脚本的目的是修复我们实验室机器上的几十个快捷方式,这些快捷方式以前被修改为支持“本土”许可/计量应用程序。在所有情况下,原始 .EXE 路径都已从目标中删除,但仍可以从快捷方式的图标路径中找到。
谢谢
编辑:完整的错误信息。它似乎在重新启动后出现得更频繁,但在我运行脚本 2-3 次后就不会出现。
Microsoft VBScript 运行时错误:对象不支持此属性或方法:'objFile.Target'