blog by ficti0n: Получение информации о сетевых принтерах HP (Название, имя хоста, порт, ip адрес) (VBS)

среда, 18 марта 2015 г.

Получение информации о сетевых принтерах HP (Название, имя хоста, порт, ip адрес) (VBS)

Для получения информации об установленных принтерах HP есть много способов, но мне понадобилось получить с использованием vbs. Получить список принтеров не проблема, трудности появились при получении ip адреса. Для его получения я решил воспользоваться чтением ветки реестра для каждого порта установленных принтеров: "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\HP Standard TCP/IP Port". 


В итоге получился такой скрипт: 

Const HKLM = &H80000002
Const NetBase = "SYSTEM\CurrentControlSet\Control\Print\Monitors\HP Standard TCP/IP Port"

Dim objWMIService, objItem, colItems, strComputer
strComputer ="."

Set objWMIService = GetObject _
("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery _
("SELECT * FROM Win32_Printer")

Set oReg = GetObject("winmgmts:\\.\root\default:StdRegProv")
iRC = oReg.EnumKey(HKLM, NetBase, aRegKeys)


For Each objItem In colItems
    sKeyName = NetBase &"\Ports\"& objItem.PortName
    oReg.GetStringValue HKLM, sKeyName, "HostName", sValue
    oReg.GetStringValue HKLM, sKeyName, "IPAddress", sValue2
   
    if svalue<>"" or sValue2<>"" then
      WScript.Echo objItem.DeviceID & "   " & objItem.PortName & "   " & sValue & "   " & sValue2
    end If
Next 

* Заготовкой взял скрипт:
' PrinterWMI.vbs
' Sample WMI Printer VBScript to interrogate properties
' Author Guy Thomas http://computerperformance.co.uk/
' Version 2.3 - December 2010

Комментариев нет:

Отправить комментарий