0

コンピューター上のすべてのショートカットを変更しようとしています。スクリプトは正常に機能しますが、オブジェクトの.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'

4

1 に答える 1

0

CIM_DataFileTargetプロパティを持っていません。

Win32_ShortcutFile代わりに使用するつもりだったと思います。

于 2013-02-06T11:41:45.583 に答える