スクリプトのエラーが実際にはWMIが競合する情報や誤った情報を返していることが原因であることがわかったときに、リモートコンピューターの既定のプリンターを照会するように設計されたvbscriptのトラブルシューティングを行っていました。このスクリーンショットを参照してください:
どちらも同じコンピューター(CLIFGRIFFIN-PC)に対してです。左側は、WindowsServer2003のインストールから実行されます。正しいものはPC自体で実行されます。
左側の1つは、結果が少ないことに加えて、デフォルトのプリンターがないことも示しています。これが、私がこれを調査することになったスクリプトエラーの原因です。
何か案は?それはただ奇妙です。
編集: これが私が使用しているコードです...
Set WshShell = CreateObject("WScript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oPrinters = WshNetwork.EnumPrinterConnections
Dim strComputer
strComputer = WshShell.ExpandEnvironmentStrings("%CLIENTNAME%")
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer Where Default = True")
For Each Printer in colInstalledPrinters
For i = 0 to OPrinters.Count - 1 Step 2
If InStr(objPrinters.Item(i+1), Printer.Name) > 0 Then
WshNetwork.SetDefaultPrinter(objPrinters.Item(i+1))
Exit For
End If
Next
Next