PowerShell 2.0管理事件日志(一)查看和读取事件日志
来源:互联网 发布:刀剑物语宠物进阶数据 编辑:程序博客网 时间:2024/05/20 09:22
事件日志是操作系统用来保存本身及其他程序信息的工具,本文将会介绍如何通过PowerShell脚本阅读事件日志并创建新的日志条目。Windows系统中包含多种事件日志,在Windows XP系统中包括4种主要的事件日志。即应用程序、系统、安全性及Internet Explorer日志,如图1所示。这样用户可以方便地从系统中提取和查看日志,从而了解系统的当前运行情况。本文将会介绍如何通过PowerShell管理Windows事件日志的方法。
图1 WindowsXP系统的事件日志
1 查看事件日志
在Windows Vista和Windows Server 2008版本中,事件日志的功能能够得到了大量改进和增强。通过使用Get-EventLog cmdlet可以查看事件日志内容,下面是脚本GetEventLogs.ps1的代码:
Get-EventLog –List
该脚本可获取本机中所有事件日志的清单,其中包括每个事件日志的大小、记录数,以及保存和覆盖策略等摘要信息,如图2所示。
图2 事件日志清单
2 读取事件日志
使用Get-EventLog –list查询当前计算机的事件日志后,可以使用Get-EventLog读取相应的日志,其基本形式是将事件日志的名称提供给Get-EventLog cmdlet。GetApplicationEventLog.ps1脚本的代码如下:
Get-EventLog application
运行该脚本显示所选日志的内容,如图3所示。
图3 所选日志的内容
通常操作系统中有大量的系统日志,会显示为多屏。为了获取有用的信息,需要筛选输出内容。
(1)输出到文本文件
创建名为“WriteAppLogToText.ps1”的脚本输出查询结果到日志文本文件中,其代码如下:
Get-EventLog application >C:/PowerShell/Applog.txt
生成的文本文件内容如图4所示,其中保存完整的日志,随后即可查询其中关心的内容。
图4 生成文本文件内容
还可以通过switch语句和正则表达式搜索和提取所需的内容,脚本switchAppTextLog.ps1使用这种方法处理日志,其代码如下:
$AppLog = “C:/PowerShell/Applog.txt” $e=$i=$w=0
Switch –wildcard –file $AppLog{
“*error*” {$e++}
“*info*” {$i++}
“*warn*” {$w++}
}
Write-Output “
$AppLog Contain following:
Errors $e
Warning $w
Information $i
”
执行结果如图5所示。
图5 执行结果
(2)输出到XML文件
将日志导出为XML文件需要使用Export-Clixml,这里使用Get-EventLog cmdlet指定要获取的事件日志的名称,用管道将日志结果传递给Export-Clixml cmdlet。并使用Export-Clixml cmdlet的参数指定保存输出的XML文件路径,路径中包含的文件夹地址必须是现有存在的;否则将会发生错误,如图6所示。
图6 将系统日志输出到XML文件中出错
需要强调的是在Windows Vista和Windows Server 2008中,没有提升权限的用户无法在系统分区根目录中写入文件。在这种情况下,需要具有操作的足够权限才能将日志文件保存在其中。如果要查看程序日志,则不必提升权限。在使用事件查看器(Eventvwr.exe)工具读取安全日志时,需要提升用户账号权限(UAC)。访问安全日志需要安全令牌中包括seSecurityPrivilege特权,默认情况下,只有管理员组的成员可以获得此权限,因此在需要将脚本提升权限后运行。最简单方法是创建一个提升的Windows PowerShell的进程,为此右击后选择快捷菜单中的“运行方式”选项。在打开的对话框中输入管理员账号及密码,即可以管理员身份运行当前的PowerShell进程。
创建名为“WriteAppLogToXml.ps1”的脚本,将日志写入XML文件中,代码如下:
Get-EventLog application | Export-Clixml –Path C:/PowerShell/applog.xml –Depth 2
写入后可以使用Excel打开该文件。需要通过菜单中的“数据”|“XML”|“导入”选项选中其中要导入的文件,从弹出的“导入数据”对话框中选择“现有工作表中的XML列表”选项。随后Excel会用一段时间转换,表格中显示其中的内容。但是表中的列名称并不是事件日志中的字段名,这里的显示名称会类似“n”或“ns:l”,或其他名称。如果查看每一列数据的详细信息,则与日志文件中的数据相吻合,如图7所示。
图7 将xml格式的系统日志导入Excel中显示
3 总结
本文介绍了通过PowerShell对Windows Vista和Windows Server 2008的事件日志进行管理的操作,包括使用Get-EventLog cmdlet生成可用的事件日志清单、使用同一个cmdlet查看、读取不同的事件日志。
作者: 付海军
出处:http://blog.csdn.net/fuhj02
版权:本文版权归作者和csdn共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
个人网站: http://txj.shell.tor.hu/
- PowerShell 2.0管理事件日志(一)查看和读取事件日志
- PowerShell 2.0管理事件日志(三)管理和创建事件日志
- PowerShell 2.0管理事件日志(二)写入和搜索事件日志
- 通过PowerShell操作事件日志
- 如何在 Windows XP 的事件查看器中查看和管理事件日志
- 如何在 Windows XP 的事件查看器中查看和管理事件日志
- 查看Windows事件日志
- windows event log如何在 Windows XP 的事件查看器中查看和管理事件日志
- 事件查看器日志分析
- 【WCE】使用事件日志服务(一)
- SQL Server 无法生成 FRunCM 线程。请查看 SQL Server 错误日志和 Windows 事件日志(转)
- 系统和事件日志监视软件 Sagan
- PowerShell 2.0 实践(六)管理Windows日志
- 抄袭事件进展日志
- 写入事件日志中
- FullCalendar-日志事件
- Win8怎么查看系统事件日志|Win8查看系统日志的方法
- 删除事件查看器中多余的日志分类
- 菜单处理中常用的函数
- 2010年度最有技术含量攻击:Padding Oracle Attack
- 利用API快速自动创建(删除)虚拟驱动器
- 凌阳SPCE3200精简开发板:使用REDBOOT进行网络调试和烧录
- HTTP协议及GET、POST的差异
- PowerShell 2.0管理事件日志(一)查看和读取事件日志
- Android SDK 2.2 离线安装
- sql语句中取整数和小数部分
- 呵呵
- DAO设计模式
- Proxy设计模式
- Eclipse
- NNM重构数据库需注意的问题
- 2010大事记【1】