You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过WMI获取打印作业的当前复印份数?

解答

你当前脚本中读取的DefaultCopies是打印机设备的默认复印份数,并不是用户提交打印作业时设置的具体份数。要获取单份打印作业的复印份数,需要查询Win32_PrintJob对象的Copies属性,而不是Win32_Printer。

修正后的VBScript示例

' My SampleCapturingPrintJobCopies.vbs
Option Explicit
Dim objWMIService, objItem, colItems, strComputer

strComputer = "."

While True
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    ' 查询所有活跃的打印作业,可根据需求调整过滤条件
    Set colItems = objWMIService.ExecQuery("Select * from Win32_PrintJob")

    For Each objItem in colItems
        Wscript.Echo "作业文档名: " & objItem.Document & " | 设置的打印份数: " & objItem.Copies
    Next

    Wscript.Echo "====================="
    WScript.Sleep 1000
Wend

WSCript.Quit

关键说明

  • Win32_PrintJob的Copies属性就是用户在打印对话框中设置的具体复印份数,这正是你要找的计数器存储位置。
  • 可以通过JobStatus字段过滤不同状态的作业,比如:
    • 4 = 正在打印
    • 1 = 已暂停
    • 8 = 已完成
  • 系统默认可能不会保留已完成的打印作业,若需要追踪历史作业,需先开启打印队列的日志记录。
  • 运行脚本时可能需要管理员权限,才能完整访问所有打印作业的属性信息。

内容的提问来源于stack exchange,提问作者gumuruh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 05:51:29