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

Get-PrintJob获取打印作业不实时,如何实现数据刷新?

解决PowerShell获取虚拟打印机作业不实时更新的问题

以下是几种可行的解决方案:

  • 改用WMI/CIM接口查询
    Get-PrintJob有时会依赖缓存数据,改用底层的WMI/CIM类查询能获取更实时的打印作业信息:

    $machine = 'machine_name'
    $printer = 'auto_dummy_printer'
    
    Get-CimInstance -ComputerName $machine -ClassName Win32_PrintJob | 
        Where-Object { $_.Name -like "*$printer*" } |
        Sort-Object -Property TimeSubmitted -Descending
    

    注意Win32_PrintJob返回的Name字段格式为打印机名,作业ID,因此用-like模糊匹配更准确。

  • 强制刷新打印服务缓存
    重启远程机器的打印后台处理服务(Spooler),可以强制刷新作业数据,但会中断当前所有打印任务,仅适合测试场景:

    Restart-Service -ComputerName $machine -Name Spooler -Force
    

    重启后再执行查询即可获取最新作业。

  • 优化查询逻辑,触发缓存更新
    在正式查询前先执行一次空查询,触发系统刷新打印作业缓存,再等待短暂时间后重新查询:

    $machine = 'machine_name'
    $printer = 'auto_dummy_printer'
    
    # 触发缓存刷新
    Get-PrintJob -ComputerName $machine -PrinterName $printer | Out-Null
    Start-Sleep -Seconds 1
    # 获取最新作业
    Get-PrintJob -ComputerName $machine -PrinterName $printer | 
        Sort-Object -Property SubmittedTime -Descending
    

    另外直接使用Get-PrintJob的-PrinterName参数,能省去管道过滤步骤,提升效率。

  • 检查虚拟打印机驱动设置
    部分虚拟打印机为了性能会延迟上报作业状态,进入打印机属性面板,查看是否有与状态更新频率相关的配置,调整为即时上报模式。

内容的提问来源于stack exchange,提问作者Jeremias Rößner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:06:00