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
