事件日志是操作系统用来保存本身及其他程序信息的工具,本文将会介绍如何通过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://fuhj02.cnblogs.com
版权:本文版权归作者和博客园共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
个人网站: http://txj.shell.tor.hu/

转载于:https://www.cnblogs.com/fuhj02/archive/2010/12/31/1922638.html

PowerShell 2.0管理事件日志(一)查看和读取事件日志相关推荐

  1. linux查看tomcat日志_Linux 查看指定时间段的日志

    测试过程中,经常会出现一闪而过的错误信息提示,没来得及截图, 要想复现,有些许困难.留给开发去定位问题的,只能是提供当时错误信息提示的大概时间, 如2020-07-20 13:00 -13:10 这个 ...

  2. linux 端口使用日志,如何查看Linux端口使用日志

    满意答案 jwzp5039 2016.11.08 采纳率:59%    等级:12 已帮助:6011人 cat /var/log/*.log 如果日志在更新,如何实时查看 tail -f /var/l ...

  3. linux查看磁盘读取慢日志,Linux命令:使用dd测磁盘读写速度

    Linux服务器装好系统之后,想要知道硬盘的读写是否能满足服务的需要,如果不满足硬盘的IO就是服务的一个瓶颈.所以我们需要测试硬盘的读写速度,测试的方法很多,下面是使用Linux 自带的dd命令测试硬 ...

  4. oracle监听日志地址,查看oracle监听日志

    察看listener.log 确认没有问题 # find / -name listener.log /home/oracle/app/OraHome_1/network/log/listener.lo ...

  5. PowerShell 2.0 实践(四)管理Windows进程

    上一次我们对Windows服务进行了简单的管理,学习了获取本地及远程计算机上服务的方法,以及查找特定服务,开始.结束.暂停.恢复服务等操作.本次我们来关注一下Windows管理中另一个核心内容:进程管 ...

  6. 计算机怎么看事件管理,如何查看Windows7系统的事件日志?查看Win7事件日志方法 电脑维修技术网...

    适用操作系统 Windows7各版本操作系统 打开系统事件日志方法/步骤 1.在WIN7桌面左下角开始菜单,找到并打开"控制面板". (图1-1 Win7开始菜单中的控制面板) 2 ...

  7. PowerShell 2.0 实践(十二)管理 SQL Server 2008 R2(1)

    DBA可以使用的工具很多,对于SQL Server来说,有查询分析器.事件探查器.命令行工具等,其中SQL语句是重中之重,但是PowerShell的出现使得DBA又多了一种选择. 测试脚本下载 本系列 ...

  8. 【CyberSecurityLearning 31】Linux网络信息查看与配置、日志文件的管理、备份及日志服务器的搭建

    目录 网络地址配置 1.确认系统的网卡信息和ip地址 2.关闭networkmanager服务 3.配置网络地址 通过配置文件配置网络地址(让配置的IP地址永久生效) 实验: 日志文件的管理与应急分析 ...

  9. Systemd日志管理:使用Journalctl查看和处理系统日志

    之前的文章Systemd日志管理服务:Journald以及重要配置选项介绍了Journald这个systemd引入的用于收集和存储日志数据的系统服务,本文将讨论systemd用来查看和处理系统日志的程 ...

最新文章

  1. 三种序列化方式性能比较
  2. AI 技术升级,这一新方法遏制在线语言骚扰
  3. CNN网络中的 1 x 1 卷积是什么?
  4. 手把手pytorch-transformers实战
  5. reactjs antd(ant-design)安装、基本使用及css样式的按需引入
  6. WebJars——web端静态资源的jar包
  7. 分布式系统Lease机制
  8. Pytest Hooks方法之pytest_runtest_makereport获取测试用例结果
  9. ASP.NET设计网络硬盘之两重要类
  10. Scala的Tuple元素个数的限制问题
  11. 【转】android题目
  12. KEIL使用教程——KEIL常用配置技巧
  13. VAssistX 脚本
  14. 数字档案馆子系统划分与功能
  15. python绘图练习
  16. Microbiome:中国科学家完成鸡肠道微生物宏基因集的构建(张和平、魏泓、秦楠点评)...
  17. led灯光衰怎么解决_LED路灯光衰问题解决方法
  18. 进制转换【最全进制转换汇总】(整数_小数_正数_负数)正负数整数小数十进制转任意进制-正负数整数小数任意进制转十进制-正负数低进制转高进制-正负数高进制转低进制
  19. 大疆前端校招面试指北,各路英雄来相会!
  20. GEE学习笔记(基础篇)更新中

热门文章

  1. linux 查看线程详细信息,Linux 下查看线程信息
  2. fire.php,Fire PHP
  3. 如何配置mac的mysql环境_mac安装mysql数据库及配置环境变量
  4. python创建mysql数据库_python 怎么创建create mysql的数据库
  5. spark编程基础--2.4函数式编程基础
  6. 小程序内容审核违规过滤,在小程序使用security.msgSecCheck
  7. iOS 开发之 pdf 文档的加载与浏览的 4 种方式
  8. 关于一些Linux SVN的安装使用
  9. 迁移碰到数据库 Unknown collation: 'utf8mb4_unicode_ci'
  10. Linux下应用软件的安装