Результаты файла WMIService иногда показывают, что объект не поддерживает это свойство

Я пытаюсь изменить все ярлыки на компьютере. Скрипт работает нормально, но время от времени выдает ошибку, что свойство .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»


person Alex Ciarlillo    schedule 04.02.2013    source источник


Ответы (1)


CIM_DataFile не имеет свойства Target.

Я полагаю, вы хотели использовать Win32_ShortcutFile вместо этого.

person Helen    schedule 06.02.2013