通过CMD获取HP打印机序列号

时间:2014-04-16 12:51:02

标签: vba vbscript cmd printers

有没有办法只使用CMD为Windows上的HP打印机收集序列号信息? 我不需要第三方工具。我需要的是能够从CMD查询它们。 对于工作站,我使用[wmic / node:COMPUTER bios get serialnumber]命令来获得我想要的东西。 我想知道是否有某种方式,某种类型的脚本可以执行相同的操作。

由于

2 个答案:

答案 0 :(得分:0)

我找不到包含序列号的选项,因为vbscript Win32_Printer类不支持该序列号,但是您可以从此脚本中检索唯一信息。

Win32_Printer Class

选项明确

Dim objWMIService
Dim objItem
Dim colItems
Dim strComputer
DIm intPrinters

strComputer ="."


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



    ' On Error Resume Next
    For Each objItem In colItems

        If(objItem.name = "HP") Then

        WScript.Echo (objItem.name)
        WScript.Echo (objItem.Description) 
        WScript.Echo (objItem.DeviceID)
        WScript.Echo (objItem.DriverName)

        End If  

    Next

'Release Memory
Set objItem = Nothing
Set objWMIService = Nothing
Set colItems = Nothing

WScript.Quit

答案 1 :(得分:0)

聚会已经很晚了,但是...

这至少适用于 HP Office Jet(使用 HP Office Jet 4500 测试)。我无法访问任何其他型号,但我可以想象它适用于任何网络管理 (HP) 打印机。

@echo off
setlocal
for /f %%a in ('curl "http://192.168.0.000/index.htm?cat=info&page=printerInfo#" 2^>nul ^|findstr /rc:" *CN"') do set "SN=%%a"
echo Serialnumber is %SN%.

这取决于在中国制造的打印机(序列号以CN...开头

该问题明确要求提供 cmd 解决方案。对于任何具有适当 HTML 或 REGEX 支持的语言,肯定会有更好(更安全)的解决方案(不依赖于 CN...)。

此外,curl 命令可能需要改进(我第一次使用它)

HTML 中的相关部分如下所示:

                  <tr>
                     <td class="info">
                        
                        Product Serial Number
                     </td>
                     <td>
                        CN000A000A00AA
                     </td>
                  </tr>

我从 curl <printer-ip> 中提取了信息页面的链接,这给了我

<body onLoad="window.top.location.href='./index.htm?cat=info&page=printerInfo'">

(当然可以用来获取不同模型的正确页面)

(注意:curl 现在可在 WIN 10 中使用,因此这在 2014 年“开箱即用”可能无法使用)