我正在尝试修改计算机上的所有快捷方式。该脚本工作正常但偶尔会抛出一个错误,即对象的.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'