【问题标题】:search event viewer server 03 and 08 r2搜索事件查看器服务器 03 和 08 r2
【发布时间】:2011-12-22 19:10:37
【问题描述】:

有没有办法使用 powershell 或其他 cmd 或程序在 Windows Server 2003 和 Windows Server 2008 r2 的事件查看器中搜索特定的打印机名称?

有时我必须搜索事件查看器以查看谁打印了特定的打印作业,我们通常知道他们打印到哪台打印机,但手动搜索非常乏味。

如果有人能够给出答案,您将需要给出整个代码,因为我是编写代码的新手。抱歉,但感谢您的帮助。

编辑: 我知道您可以导出列表,但我正在寻找的是一种解析事件描述的方法。

完成此过程的程序安装将安装在单独的计算机上,因为我们会尽量保持服务器清洁。除非它是一个可以在运行后立即删除的独立文件,否则所有代码都将从远程计算机运行。

我知道 Log Parser,但不确定如何让它在另一台计算机上运行,​​我确定我正在寻找正确的方法。

我将在 Win 7 Pro 64 位电脑上运行所有程序。

【问题讨论】:

    标签: powershell vbscript batch-file event-log


    【解决方案1】:

    您可以使用 Get-EventLog cmdlet 来获取事件日志条目。在此示例中,我连接到一台名为 STUDIO 的远程计算机,该计算机运行 Server 2003 并搜索由 STUDIO\Administrator 发起的打印事件。

    Get-EventLog -ComputerName studio -LogName System -Source Print -UserName "STUDIO\Administrator"
    

    打印机名称包含在消息属性中,因此您可以进行正则表达式匹配。

    Get-EventLog -ComputerName studio -LogName System -Source Print -UserName "STUDIO\Administrator" | where-object {$_.Message -match "PrinterName"}
    

    【讨论】:

    • 抱歉这么久才回来。这段时间大部分时间都休息。这似乎运行良好,需要一段时间,但我没想到它会很快,但我没有看到它在哪里输出
    • @user1100566 结果应显示在 PowerShell 窗口中。你能显示你正在运行的命令吗?
    • GET-Eventlog -Computername computername -LogName System -Source Print -UserName "username\domain" 就是从ps复制过来的。我确实更改了计算机名、用户名和域名。我想具体但不是太具体,直到我让它持续工作。它运行了一个多小时,然后什么也没输出。我应该在计算机名前面加 \\ 吗?
    • @user1100566 因为它什么都不输出,所以听起来好像没有匹配的事件。手动查看该机器上的事件查看器并查找具有源“打印”的任何事件并检查用户字段以查看它是什么。在本地重试该命令以加快它用您在实际事件日志记录中找到的用户替换您正在查找的内容。
    • 我让它工作了,我需要交换用户名和域,所以它是“域\用户名”。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    相关资源
    最近更新 更多