VBネタ:WMIのWin32_Printerで他マシンのプリンタ情報取得

えーっと、「ネットワーク上のコンピュータから

プリンタ情報を取得したいのだが...」っつーことで

「こりゃWMIだろ」( ̄− ̄)

ということで調べるとWin32_Printerを使うことで

取得が可能であることが判明した。

全部のプロパティを吐き出させてみると、

以外や以外にPaperNoからドライバ情報まで

Debug.Printが溢れんばかりに吐き出してました(゜∀゜)ウヒャ

で、そのテスト版がρ(・д・*)コレ


Sub Test_WMI_GetPrinterInfo()
Dim strComputerName As String
Dim strUserName As String
Dim strPassword As String
Dim objLocator As New WbemScripting.SWbemLocator
Dim objWMIService As WbemScripting.SWbemServices
Dim objWin32_Printer As WbemScripting.SWbemObjectSet
Dim objPrinter As WbemScripting.SWbemObject
Dim objProperty As WbemScripting.SWbemProperty
Dim strMsg As String
Dim i As Integer

strComputerName = "MyComputer"
strUserName = "Administrator"
strPassword = "hogehoge"

Set objWMIService = objLocator.ConnectServer(strComputerName, , strUserName, strPassword)
Set objWin32_Printer = objWMIService.InstancesOf("Win32_Printer")
For Each objPrinter In objWin32_Printer
strMsg = strMsg & "-------------------------------------" & vbCrLf
For Each objProperty In objPrinter.Properties_
If IsArray(objProperty.Value) Then
For i = LBound(objProperty.Value) To UBound(objProperty.Value)
strMsg = strMsg & "[" & objProperty.Name & "](" & i & ")=" & objProperty.Value(i) & vbCrLf
Next
Else
strMsg = strMsg & "[" & objProperty.Name & "]=" & objProperty.Value & vbCrLf
End If
Next
Next

Debug.Print strMsg

End Sub