URL から "-MoIyadayo" を削除してトラックバックを送信してください。
トラックバックは承認後に表示されます。
wshでは,wshNetworkのEnumPrinterConnectionsでネットワークプリンタの共有名を得ることができるとあるのだが,実際にプリンタの共有名を調べてみるとちょっとおかしな感じだと言うことがわかった。
プリンタ名称 AAA Printer PRN2000 サーバ名 prnsv 共有名 prn_1
上記のような共有プリンタをクライアントに割り当てていた場合には,
\\prnsv\prn_1
このプリンタの共有名というのは,上記のようにになるはずなのに,EnumPrinterConnectionsでは,
\\prnsv\AAA Printer PRN2000
という共有名が返ってくる。
'WSHでのプリンタの共有名列挙 Set WshNetwork = WScript.CreateObject("WScript.Network") Set oDrives = WshNetwork.EnumNetworkDrives Set oPrinters = WshNetwork.EnumPrinterConnections sP = "" On Error Resume Next For i = 0 to oPrinters.Count - 1 Step 2 sP = sP & "ポート " & oPrinters.Item(i) & " = " & oPrinters.Item(i+1) & vbcrlf Next WScript.Echo sP
本当の共有名を得るにはWMIを使わなくてはならないようだ。
'WMIでの共有名列挙 strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Printer",,48) sR = "" For Each objItem in colItems sShareName = objItem.ServerName & "\" & objItem.ShareName if Len(sShareName)>0 then sR = sR & sShareName & ";" End If Next WSCript.Echo sR