2011年10月09日


WMI クラスの情報の一覧 : プリンタ情報

自宅のプリンタなので、二つきりでかつたいした内容ではありませんが
それでも大量の情報が表示されます。

コマンドプロンプトで、cscript prtinfo.vbs > result.txt とするのが
いいと思います

※ obj.CancelAllJobs() で、そのプリンタの印刷キューを削除する事ができます
※ obj.SetDefaultPrinter() で、デフォルトのプリンタに設定できます


Crun は、間違って Wscript で実行するとプロセスを終了させなければ
いけなくなるのでセッティングしています。

実行結果
WMI : プリンタ一覧

prtinfo.vbs
Crun()

strComputer = "."  
Const Impersonate = 3

' ユーザとパスワードは必要な時にセットします
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objLocator.ConnectServer( _
		strComputer, _
		"root\cimv2", _
		strUser, _
		strPassword _
	)
objWMIService.Security_.ImpersonationLevel = Impersonate

Set colInstalledPrinters = objWMIService.ExecQuery _  
    ("Select * from Win32_Printer")  

For Each obj in colInstalledPrinters
	Wscript.Echo "■■■[" & obj.Name & "]■■■"
	For Each Prop in obj.Properties_
		if isArray( Prop.Value ) then
			Wscript.Echo "【" & Prop.Name & "】"
			For Each ar in Prop.Value
				Wscript.Echo "  --> " & ar
			Next
		else
			Wscript.Echo "【" & Prop.Name & "】 : " & Prop.Value
		end if
	Next
	Wscript.Echo vbCrLf
Next

Function Crun()

	Set WshShell = CreateObject( "WScript.Shell" )

	' フルパス
	strPath = WScript.FullName
	strTarget = Right( strPath, 11 )
	strTarget = Ucase( strTarget )

	' CSCRIPT.EXE で無い場合
	if strTarget <> "CSCRIPT.EXE" then
		' 自分自身ののフルパス
		strMyPath = WScript.ScriptFullName
		strParam = " "
		' 引数を全て読みだして、スペースが含まれていた場合は再度引き渡す
		' 為に " で囲み直しています
		For I = 0 to Wscript.Arguments.Count - 1
			if instr(Wscript.Arguments(I), " ") < 1 then
				strParam = strParam & Wscript.Arguments(I) & " "
			else
				strParam = strParam & """" & Wscript.Arguments(I) & """ "
			end if
		Next
		Call WshShell.Run( "cscript.exe """ & strMyPath & """" & strParam, 3 )
		WScript.Quit

	end if

End Function

関連する記事

WMI Query ( HTML アプリケーション )


タグ:WMI
posted by at 12:17 | Comment(0) | WMI | このブログの読者になる | 更新情報をチェックする


この記事へのコメント
コメントを書く
お名前:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。