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

[玩转系统] 使用 PowerShell 监控事件日志

作者:精品下载站 日期:2024-12-14 05:57:39 浏览:15 分类:玩电脑

使用 PowerShell 监控事件日志


PowerShell 适合的例行系统管理任务是解析数据和文本文件,Windows 事件日志使用 XML 格式的信息,可以使用 Get-EventLog 和 Get-WinEvent 轻松解析这些信息。 PowerShell cmdlet。在本文中,我将向您展示如何开始使用 PowerShell 解析事件日志,并解释这两个 cmdlet 之间的差异,以使您更轻松地监控事件日志。

Get-EventLog 与 Get-WinEvent

Get-EventLog 是 Microsoft 在 Windows 中包含的第一个 PowerShell cmdlet,用于方便处理事件日志。从 PowerShell v2.0 开始,添加了 -ComputerName 参数,以便它也可用于查询远程计算机上的日志。但是 Get-EventLog 有一些限制,导致在 PowerShell 版本 2 中引入 Get-WinEventGet-EventLog 仅适用于系统、应用程序和安全日志,而不是 Windows 7 中随 Windows 事件跟踪 (ETW) (ETW) 引入的新 ETL 日志(事件跟踪日志),其中包含来自更广泛来源的信息与自 Windows NT 以来就存在的传统日志相比。

[玩转系统] 使用 PowerShell 监控事件日志

Get-EventLog cmdlet 不允许直接过滤返回的结果,这意味着必须通过将结果管道传输到 Where-Object cmdlet 来解析数据集进一步处理。如果您只想使用本地计算机上的日志,这可能不是太大的问题,但在查询远程计算机时可能会成为问题,因为日志需要在解析之前通过网络传输,这如果日志很大,则会花费额外的时间并产生不必要的网络流量。

因此,如果您确实想返回日志的全部内容,并且不需要进一步处理它,可以选择使用 Get-EventLog,但 Get-WinEvent 是为了解决 Get-EventLog 的缺点而开发的,同样能够返回整个日志,并且未来 Microsoft 可能会支持使用事件日志的 cmdlet。

PowerShell 事件日志基础知识

首先,我们使用 Get-WinEvent 返回事件日志的全部内容。打开 PowerShell 提示符,键入下面的命令行并按 Enter。

Get-WinEvent -LogName 应用程序

这会将应用程序日志的全部内容输出到 CLI。在实践中,您可能只想查看最近的事件,最简单的方法是添加 -MaxEvents 参数:

Get-WinEvent -LogName 应用程序 -MaxEvents 10

上面的命令行显示应用程序日志中记录的最后十个事件。 Get-WinEvent可以用来解析ETL日志,但需要先找到日志名称。要列出所有可用日志,请使用:

Get-WinEvent -ListLog *

然后查找所需的日志名称,例如可以使用以下命令返回BitLocker Management日志。请注意,日志名称的顶部和尾部需要撇号,因为它包含空格:

Get-WinEvent -LogName ‘Microsoft-Windows-BitLocker/BitLocker Management’ -MaxEvents 10

您还可以通过添加Format-List cmdlet 来获取有关特定日志的详细信息,如下所示:

Get-WinEvent -ListLog“Microsoft-Windows-BitLocker/BitLocker 管理”|格式列表-属性 *

如果您想在远程计算机上执行上述任何任务,只需添加 -ComputerName 参数,后跟计算机名称:

Get-WinEvent -ListLog ‘Microsoft-Windows-BitLocker/BitLocker Management’ -ComputerName contososrv1 |格式列表-属性 *

不要忘记,您必须拥有读取所需日志的必要权限,无论它是在本地计算机还是远程设备上。

这是你可以测试你的记忆力的地方:确保选择正确的答案!

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

取消回复欢迎 发表评论:

关灯