WMIService文件结果有时会给“对象不支持此属性”

时间:2013-02-04 20:34:57

标签: vbscript wmi-query

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

1 个答案:

答案 0 :(得分:0)

CIM_DataFile没有Target属性。

我相信您的意思是使用Win32_ShortcutFile