摘要:
在编写PowerShell脚本的时候,可以通过给变量赋值的方法输出想要的结果,但这样的话,需要改动脚本内容。其实也可以在脚本中定义参数,然后再在执行脚本的时候对参数赋值,而无需改动脚本内容。 在PowerShell脚本中,可以使用param()声明参数,如下: param($a,$b) write- 阅读全文
摘要:
wevtutil epl setup c:\setup.evtx============================================#定义事件日志保存位置,每天的事件日志保存在以当前日期为名的文件夹下$eventlog_folders = "c:\eventlogs"If (!(... 阅读全文
摘要:
实际上,我们可以通过PowerShell来获取性能计数器的值,比如当计算机可用内存小于500MB时,则自动发送邮件告警。在PowerShell中,并没有专门的命令来获取性能计数器的值,也无法直接发送邮件,都需要先创建.Net Framework类的实例。1)获取性能计数器代码如下:#新建性能计数器对... 阅读全文
摘要:
当使用批处理或VBS脚本访问远程计算机的时候,我们可以直接将其用户名和密码写入到脚本中,但是在PowerShell中,则不允许直接将密码写入其中,这虽然在很大程度上提高了脚本的安全性,但有时候却也给我带来了一些麻烦。 如果我们要获取计算机(192.168.12.6)的系统信息,则需要使用Get... 阅读全文
摘要:
可能大家都知道,在PowerShell中使用“Get-Eventlog”命令可以查询Windows系统中的事件日志,如常见的应用程序、系统以及安全日志。但有的时候我们可能又需要将一些关键信息输出到事件日志中,我们就可以使用System.Diagnostics.EventLog类,不仅可以将信息写入到传统事件日志(即系统、应用程序,以及安全)中;还可以创建自己的事件日志,并将日志写入其中。 在写入事件日志之前,必须创建来源,通过来源可以很快的定位该事件的源头,如下图1所示。创建事件来源后,还需要将其与事件日志名称进行关联,然后再写入特定的信息。同一个事件源只能被写入到一种事件日志中,如写... 阅读全文
摘要:
在运行脚本的时候,如果脚本运行时间较长,就会不知道脚本的运行状况如何,如果在运行过程中有一个进度显示,那将会方便很多。在PowerShell中,通过使用“Write-Progress”命令可以在窗口中显示进度栏,描绘正在运行的命令或脚本的状态。$servers = get-content d:\serverlist.txt$i=0foreach ($server in $servers){if ($server -ne $null){}$i=$i+1$w=$i.tostring() + '/' + $servers.count.tostring()Write-Progress 阅读全文
摘要:
今天在一个脚本中需要用到“select-string”用来查找关键字,脚本很容易就写好了,但是在运行该脚本的时候却发现要将近20秒才能完成,执行效率太低了,仔细把脚本从头到尾看了一遍,觉得问题就是出在“select-string”身上,因为这其中要遍历的文本文件有6MB多大小。 因为在脚本中很多地方需要在前一句命令的执行结果中查找关键字,为了方便,都是直接通过管道符将结果传给了“select-string”进行搜索,这样的搜索结果也很容易进行二次加工,如下:netstat -an |select-string "ESTABLISHED"TCP 192.168.1.12:49 阅读全文