我想為 Windows 10 撰寫一個腳本,每次列印作業完成時將 .txt 中的計數加 1。理想情況下,每天單獨計數,這樣我就可以看到一天完成了多少列印作業。
任何有助于理解如何解決這個問題的幫助都將不勝感激!
uj5u.com熱心網友回復:
列印服務在每次列印時都會記錄 - 您只需啟用適當的事件日志通道并使用生成的日志事件:
# Enable the Microsoft-Windows-PrintService/Operational log channel
wevtutil.exe set-log Microsoft-Windows-PrintService/Operational /enabled:true
現在啟用了日志通道,列印服務將在每次執行本地列印作業時記錄一個事件 ID 為 307 的事件。由于日志事件都有時間戳,因此每天獲取計數就像使用Group-Objectcmdlet 一樣簡單:
# Fetch the print job events from the event log
$printJobEvents = Get-WinEvent -FilterHashtable @{ LogName='Microsoft-Windows-PrintService/Operational'; EventId=307 }
# Group by date logged, to get a count-per-day
$printJobEvents |Group-Object { '{0:yyyy-MM-dd}' -f $_.TimeCreated.Date } -NoElement |Sort-Object Name
uj5u.com熱心網友回復:
一種可能有用的技術是查詢 spooler 服務的統計資訊,如下所示:
Get-CimInstance 'Win32_PerfFormattedData_Spooler_PrintQueue' |
Format-Table -Property Name,Jobs,TotalJobsPrinted,TotalPagesPrinted -AutoSize
這給出了這樣的輸出:
Name Jobs TotalJobsPrinted TotalPagesPrinted
---- ---- ---------------- -----------------
Printer1 0 50 212
Printer2 3 13 118
Printer3 1 33 306
_Total 4 96 636
每次Print Spooler服務重新啟動時都會重置統計資訊,因此您需要在最終腳本中考慮到這一點,這可能會使該選項比 Mathias 的事件日志解決方案更棘手。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491425.html
