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
トラックバック
関連するコンテンツ
人気のあるページ
- Robocopyでフォルダをコピー
- Robocopy よく使うオプション
- Active Directoryのユーザ管理 (1)
- SQL Server で文字列の半角/全角変換
- SQL Server 2005からリンクテーブルでOracleに接続する
- Windowsサーバでのレプリケート失敗を解決
- LDAP認証とActive Directory
- SQL Server 2005のデータベースコピーウィザードを使う
- WebClientサービスをポリシーで止める
- ログオン時にドライブやプリンタを割り当てる
- ログオン,ログオフ状況を記録するスクリプト
- 設定系スクリプト実行時にUACに邪魔されるのを回避する
