当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 Windows 事件查看器日志跟踪打印机使用情况

作者:精品下载站 日期:2024-12-14 06:35:35 浏览:14 分类:玩电脑

使用 Windows 事件查看器日志跟踪打印机使用情况


在 Windows 中,您可以使用事件查看器跟踪打印机的使用情况。发送到打印后台处理程序的所有打印作业都记录在事件查看器中。如果您在 Windows 上部署了打印服务器,则可以使用这些日志来组织一个简单的打印审核解决方案,使您能够了解谁在您的打印机上打印、何时打印以及打印了多少页。

在本文中,我们将展示如何在 Windows 中启用和配置打印事件日志记录、在事件查看器中查看打印历史记录以及使用 PowerShell 搜索或筛选打印事件。

如何在 Windows 中启用打印日志记录

Windows 有一个单独的事件查看器日志,其中记录了所有打印事件:

SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-PrintService%4Operational.evt

。但是,默认情况下此日志是禁用的。要在 Windows 上启用打印日志记录:

  1. 打开事件查看器(

    eventvwr.msc

    );

  2. 转至应用程序和服务日志 -> Microsoft -> Windows -> PrintService。

  3. 右键点击操作,选择启用日志

    [玩转系统] 使用 Windows 事件查看器日志跟踪打印机使用情况

  4. 如果要长时间保留打印日志,请增加此事件日志的默认大小 1MB。打开操作日志属性并设置最大日志大小;

    [玩转系统] 使用 Windows 事件查看器日志跟踪打印机使用情况

您还可以使用以下命令启用(禁用)特定事件日志:

wevtutil.exe sl Microsoft-Windows-PrintService/Operational /enabled:true

如果您希望事件日志显示发送用于打印的文件名,则必须启用特殊的 GPO 设置。

  1. 打开本地组策略编辑器(

    gpedit.msc

    );

  2. 转至计算机配置 -> 管理模板 -> 打印机。

  3. 启用选项允许事件日志中的作业名称

    [玩转系统] 使用 Windows 事件查看器日志跟踪打印机使用情况

  4. 使用更新策略设置

    gpupdate /force

    命令。

现在所有打印事件都将记录在事件查看器中。

使用事件查看器检查 Windows 上的打印历史记录

您现在可以查看有关此计算机上发生的所有打印事件的详细信息。

打开事件查看器并转到应用程序和服务日志 -> Microsoft -> Windows -> PrintService -> 操作。查找事件 ID 为 307 的事件:

Printing a document

打开活动详情:

Document 12, Microsoft Word - a-d.docx owned by maxadm on \DESKTOP-PC617 was printed on HP LaserJet M1530 MFP Series PCL 6 through port USB001. Size in bytes: 31780. Pages printed: 1. No user action is required.

事件描述包含:

  • 打印文件的名称和打印该文件的应用程序:

    Microsoft Word — a-d.docx
  • 打印文件的用户名:

    maxadm
  • 打印机名称:

    HP LaserJet M1530 MFP Series PCL 6
  • 打印页数:

    Pages printed: 1
  • 文件大小:

    size in bytes

[玩转系统] 使用 Windows 事件查看器日志跟踪打印机使用情况

使用 PowerShell 打印日志分析

事件查看器不允许方便地统计打印历史记录或按日期/用户/文档进行搜索。您可以使用 PowerShell 处理和筛选打印事件。

要从 PrintService/操作日志中获取事件,请使用 Get-WinEvent PowerShell cmdlet。以下 PowerShell 脚本显示过去 24 小时内当前计算机上打印的所有文档的列表:

$all2dayprint=Get-WinEvent -FilterHashTable @{LogName="Microsoft-Windows-PrintService/Operational"; ID=307; StartTime=(Get-Date).AddDays(-1)} | Select-object -Property TimeCreated, @{label='UserName';expression={$_.properties[2].value}}, @{label='Document';expression={$_.properties[1].value}}, @{label='PrinterName';expression={$_.properties[4].value}}, @{label='PrintSizeKb';expression={$_.properties[6].value/1024}}, @{label='Pages';expression={$_.properties[7].value}}
$all2dayprint|ft

[玩转系统] 使用 Windows 事件查看器日志跟踪打印机使用情况

如果您只想显示特定用户打印的文档:


$PrintUsername='maxadm'
$all2dayprint| Where-Object -Property UserName -like $PrintUsername|ft

您可以使用 Export-CSV 将打印文档列表导出到 CSV 文件中:

$all2dayprint | Export-Csv -Path "c:\ps\Print Audit.csv" -NoTypeInformation -Encoding UTF8

或者以图形化的 Out-GridView 形式查看它:

$all2dayprint| Out-GridView -Title "All print jobs"

[玩转系统] 使用 Windows 事件查看器日志跟踪打印机使用情况

您可以安排此 PowerShell 脚本每天运行并将打印机使用信息写入外部数据库。

例如,您可以将 PowerShell 脚本中的数据写入 MySQL、MariaDB 或 Microsoft SQL Server 数据库。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯