当前位置: 首页 > 编程日记 > 正文

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

事件日志是操作系统用来保存本身及其他程序信息的工具,本文将会介绍如何通过PowerShell脚本阅读事件日志并创建新的日志条目。Windows系统中包含多种事件日志,在Windows XP系统中包括4种主要的事件日志。即应用程序、系统、安全性及Internet Explorer日志,如图1所示。这样用户可以方便地从系统中提取和查看日志,从而了解系统的当前运行情况。本文将会介绍如何通过PowerShell管理Windows事件日志的方法。

image

图1 WindowsXP系统的事件日志

1 查看事件日志

在Windows Vista和Windows Server 2008版本中,事件日志的功能能够得到了大量改进和增强。通过使用Get-EventLog cmdlet可以查看事件日志内容,下面是脚本GetEventLogs.ps1的代码:

Get-EventLog –List

该脚本可获取本机中所有事件日志的清单,其中包括每个事件日志的大小、记录数,以及保存和覆盖策略等摘要信息,如图2所示。

image

图2 事件日志清单

2 读取事件日志

使用Get-EventLog –list查询当前计算机的事件日志后,可以使用Get-EventLog读取相应的日志,其基本形式是将事件日志的名称提供给Get-EventLog cmdlet。GetApplicationEventLog.ps1脚本的代码如下:

Get-EventLog application

运行该脚本显示所选日志的内容,如图3所示。

image

图3 所选日志的内容

通常操作系统中有大量的系统日志,会显示为多屏。为了获取有用的信息,需要筛选输出内容。

(1)输出到文本文件

创建名为“WriteAppLogToText.ps1”的脚本输出查询结果到日志文本文件中,其代码如下:

Get-EventLog application >C:\PowerShell\Applog.txt

生成的文本文件内容如图4所示,其中保存完整的日志,随后即可查询其中关心的内容。

image

图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所示。

image

图5 执行结果

(2)输出到XML文件

将日志导出为XML文件需要使用Export-Clixml,这里使用Get-EventLog cmdlet指定要获取的事件日志的名称,用管道将日志结果传递给Export-Clixml cmdlet。并使用Export-Clixml cmdlet的参数指定保存输出的XML文件路径,路径中包含的文件夹地址必须是现有存在的;否则将会发生错误,如图6所示。

image

图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所示。

image

图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

相关文章:

Applet相关知识

1、Applet定义 Applet是采用Java编程语言编写的小应用程序&#xff0c;该程序可以包含在 HTML&#xff08;标准通用标记语言的一个应用&#xff09;页中&#xff0c;与在页中包含图像的方式大致相同。含有Applet的网页的HTML文件代码中部带有<applet> 和</applet>这…

python threading ThreadPoolExecutor源码解析

future: 未来对象&#xff0c;或task的返回容器 1. 当submit后&#xff1a; def submit(self, fn, *args, **kwargs):with self._shutdown_lock: # lock是线程锁if self._shutdown:raise RuntimeError(cannot schedule new futures after shutdown)f _base.Future() # 创建fut…

【js】内置对象array的常见方法的使用

<html><head></head><script type"text/javascript">//数组var stuName1 new Array();stuName1[1] "小强1";stuName1[2] "小强2";//alert(stuName.length);//声明并穷举数组var stuName2 new Array("小强3&quo…

《学习vi编辑器》的学习笔记1

第一章 vi文本编辑器 打开文件vi [filename] 输入:q在缓冲区中内容和磁盘内容一致的时候退出,否则就需要输入:q!来忽略这个限制,不保存缓冲区,直接退出 命令模式:每次输入都表示一个命令. 插入模式:输入的一切内容都将吃味文件中的文本 :wq(属于ex编辑器)命令等价于ZZ命令,就是…

Android的API与差异化之路

Android的API与差异化之路 发挥Android特色&#xff1a;框架API和开源(开放) Android平台就如同长城般&#xff0c;两岸的硬件业厂商就如同关内居民&#xff0c;是建造长城的最先获利者。也基于这样的效益&#xff0c;让许多硬件大厂竞相拥抱Android&#x…

Oracle 高效分页

-- 分页 select * from t_user5 select count(1) from t_user5 --10,485,760 -- rownum是一个查询后的结果&#xff0c;查询之前是不存在的 select rownum,rowid,tt.* from t_user5 tt where rownum<3 and sex1 and rownum>2 -- 对结果进行查询 -- 思路1&#xff0c;r…

Data - 【转】数据分析的道与术

简要说明 本文来自网络流传的“百度内部培训PPT - 数据分析的道与术”&#xff0c;版权属于“百度”&#xff0c;如有冒犯&#xff0c;即刻删除。PDF下载 - 数据分析的道与术什么是数据分析&#xff08;道&#xff09; 1 - 数据分析是什么&#xff1f; 2 - 什么是做好数据分析的…

ruby生成C++头文件引用关系图

首先生成graphviz的dot格式文件 require find class RefNodeattr_accessor :name,:reference end include Find if __FILE__ $0name "name"dot []h Hash.newputs ["digraph #{name}{","overlap false","spline true","rank…

【js】内置对象String的常用方法

<html><head></head><script type"text/javascript">var stuName1 "小强1";var test "abcdcab";//alert(stuName.charAt(1));var stuName2 "小强2";//alert(stuName1.concat(stuName2));//alert(test.inde…

关于Linux静态库和动态库的分析

From:http://hi.baidu.com/bdccutysj/blog/item/5bae7f0202abac7c3912bb15.html1.什么是库 在windows平台和linux平台下都大量存在着库。 本质上来说库是一种可执行代码的二进制形式&#xff0c;可以被操作系统载入内存执行。 由于windows和linux的本质不同&#xff0c;因此二者…

求解|x-y|最小

问题&#xff1a;输入数组a和b&#xff0c;请通过交换的方式重新分配两个数组&#xff0c;使得|a-b|最小 提供一种思路&#xff1a; 当前数组a和数组b的和之差为 A sum(a) - sum(b) a的第i个元素和b的第j个元素交换后&#xff0c;a和b的和之差为 A ( sum(a) - a[i] b…

最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用50

广告客户吴言之前也研究过互联网广告业务模式&#xff0c;具体来讲可以分为六大模式&#xff1a;门户网站广告模式、搜索引擎广告模式、社会化网站广告模式、视频网站广告模式、植入式广告模式、广告联盟模式。对于门户网站广告模式来讲&#xff0c;这是一种push模式&#xff0…

终于遇见——王阳明

一个厉害的人 王阳明&#xff0c;五百年来的一个圣人&#xff0c;最后总结了四句教&#xff1a;无善无恶心之本&#xff0c;有善有恶意之动&#xff0c;知善知恶是良知&#xff0c;为善去恶是格物。看完王阳明的一生&#xff0c;再看到这四句话时&#xff0c;直让人发怔&#x…

【jquery】jquery基础知识

总体介绍&#xff1a; jquery是一个js的类库&#xff0c;为了减少代码量实现更多的功能 1、jquery使用需要引入jquery的类库&#xff0c;其中有一名称带min&#xff08;产品版&#xff09;有一个不带min的&#xff08;开发版&#xff09;&#xff0c;作用相同。当我们同网页打…

针对19端口的Chargen进行Dos***

先普及一下基础吧&#xff1a; 英语全名&#xff1a;Character Generator Protocol 汉语&#xff1a;字符发生器协议 默认端口&#xff1a;TCP 19&#xff0c;UDP 19 本协议在RFC 864中定义。 在TCP连接建立后&#xff0c;服务器不断传送任意的字符到客户端&#xff0c;直到客户…

TCP/IP 简介

原文&#xff1a;TCP/IP 简介 第一节&#xff1a;TCP/IP 简介 第二节&#xff1a;TCP/IP 寻址 第三节&#xff1a;TCP/IP 协议 第四节&#xff1a;TCP/IP 邮件 TCP/IP 是用于因特网 (Internet) 的通信协议。 计算机通信协议 计算机通信协议是对那些计算机必须遵守以便彼此通信的…

MyEclipse提示键配置、提示快捷键、提示背景色、关键字颜色、代码显示

1、提示键配置一般默认情况下&#xff0c;Eclipse &#xff0c;MyEclipse 的代码提示功能是比Microsoft Visual Studio的差很多的&#xff0c;主要是Eclipse &#xff0c;MyEclipse本身有很多选项是默认关闭的&#xff0c;要开发者自己去手动配置。如果开发者不清楚的话&#x…

【jquery】用jsp写jquery的模板

代码实现&#xff1a; <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dt…

《网页设计创意书》读后感

刚刚收到《网页设计创意书》&#xff0c;确实有点惊喜&#xff0c;开始以为是像之前审读的书一样是一叠叠的打印纸&#xff0c;没想到是一本成品书&#xff0c;拿到手上沉甸甸的&#xff0c;随便翻看了一下&#xff0c;没想到里面竟然还是全彩页印刷的&#xff0c;本书的第一感…

博客园的博客积分与排名查看方法

我是今天才知道&#xff0c;out。因为这东东默认是不显示的&#xff0c;因此找不到。 注意&#xff1a;只是你在博客园的博客的积分排名&#xff0c;而不是你的在博客园的排名。 设置-博客设置&#xff08;博客后台管理&#xff09;-选项-积分与排名打勾。刷新你的博客页面即可…

产品经理之我见

产品经理的定义&#xff1a; 1、 管理、营销自己特定产品线、品牌和服务的责任。 2、 又叫品牌经理&#xff0c;行业经理&#xff0c;顾客细分经理等。 产品经理存在的地方 1、 消费型的零售业&#xff0c;服务业&#xff08;化妆品&#xff0c;金融行业等&#xff09;。 2、…

casperjs 安装试用

纠结了好久&#xff0c;一直报错, 具体错误信息现在已经忘了&#xff0c;后来看了官网的prerequisite&#xff0c;才知道要安装特定版本或greater 的 phantomjs 和 Python。我这边主要是没装python。当然还有casperjs 的bin 路径也要加到环境变量里&#xff08;windows). 然后都…

【jquery】jquery选择器

知识点 1、jquery选择器的作用是选择jquery页面中的html元素。 2、常用的选择器有&#xff1a;基本选择器、层级选择器、过滤选择器、属性选择器。 基本选择器 1、 id 选择器 代码实现&#xff1a; element $("#id") 等价于 document.getElementById("…

android-轻松监听来电和去电

要监听android打电话和接电话&#xff0c;只需下面2步骤 1.第一步&#xff0c;写一个Receiver继承自BroadcastReceiver public class PhoneStatReceiver extends BroadcastReceiver{private static final String TAG "PhoneStatReceiver";// private stat…

【sql】实现分页查询

分页查询&#xff0c;以五条五条查询为例&#xff1a; 代码实现&#xff1a; select * from goods_list LIMIT 0 , 5; 从第0条开始&#xff0c;查询五条

N-Case 律师事务所管理系统安装与卸载说明

目 录 1 解压安装包... 1 2 安装系统... 1 3 登录系统... 2 4 安装失败... 3 5 系统试用帐号... 3 6 远程访问... 3 7 卸载系统... 3 1 解压安装包 先解压软件包&#xff0c;解压后把redcat目录剪切或拷贝到D盘根目录下即可。一定要放到D…

jmeter分析性能报告时的误区

概述 我们用jmeter做性能测试&#xff0c;必然需要学会分析测试报告。但是初学者常常因为对概念的不清晰&#xff0c;最后被测试报告带到沟里去。 常见的误区 分析响应时间全用平均值响应时间不和吞吐量挂钩响应时间和吞吐量不和成功率挂钩。。。。。 平均值特别不靠谱 平均值为…

const的位置

2019独角兽企业重金招聘Python工程师标准>>> 1.指向常量的指针 const 类型 * 指针名 或者 类型 const * 指针名特点&#xff1a;不能修改指向的对象的值,可以修改指针的指向int var11; const int var22; const int * p1&var1; const int * p2&var2; *p1100;…

zookeeper入门系列 : 分布式事务

上一章我们了解了zookeeper到底是什么&#xff0c;这一章重点来看zookeeper当初到底面临什么问题&#xff1f;而zookeeper又是如何解决这些问题的&#xff1f; 实际上zookeeper主要就是解决分布式环境下的一致性问题。那么解决这个问题到底有哪些难点呢&#xff1f;我们一步一步…

rdlc报表显示条码 .

1.条码的生成&#xff1a; private Bitmap GetCode39(string strSource) { int x 5; //左邊界 int y 0; //上邊界 int WidLength 2; //粗BarCode長度 int NarrowLength 1; //細BarCode長度 …