Ext JS に関しては,新しい記事は Sunvisor Lab. ExtJS 別館 にあります。そちらもよろしくお願いいたします。
プリンタの共有名を得る
投稿者:sunvisor 投稿日時:2007/09/04(火) 13:07
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