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