COM组件
摘要:IE:$ie = New-Object -ComObject InternetExplorer.ApplicationExcel:$excel=new-object -comobject excel.applicationWord:$wordApp = New-Object -COM Word.Application$file = (dir Sample.doc).FullName$doc = $wordApp.Documents.Open($file)$text = $doc.Content.Text$text$wordApp.ExitPerfcounter:$counter = New-O
阅读全文
posted @
2013-06-09 15:12
momingliu11
阅读(197)
推荐(0) 编辑
Hash Table
摘要:$results=@()foreach ($m in $ms) { $result=""|select a,b,c $result.a = $m.a $result.b = $m.b $result.c = $m.c $results += $result }$results | export-csv -encoding utf8 -notypeinformation -path c:\perc\result.csv###################################...
阅读全文
posted @
2013-06-06 12:04
momingliu11
阅读(250)
推荐(0) 编辑
计数器收集
摘要:#由于在windows2008下没有get-counter命令,所以现在其他计算机下收出所有counter到文件,然后再将该文件拿到08下利用后面的脚本去跑#$countersr = get-counter -ListSet * -ComputerName win08#foreach ($counterr in $countersr)# {# $counterr.paths |out-file c:\perc\counter_raw.txt -Append# }###########以下部分在win08上面运行########################$results...
阅读全文
posted @
2013-06-05 14:57
momingliu11
阅读(208)
推荐(0) 编辑
正则表达式2
摘要:进行正则匹配时,尽量都加上 边界符 ^ 或者 \b正则表达式元素可以归为三大类。字符:字符可以代表一个单独的字符,或者一个字符集合构成的字符串。限定符:允许你在模式中决定字符或者字符串出现的频率。定位符:允许你决定模式是否是一个独立的单词,或者出现的位置必须在句子的开头还是结尾。正则表达式代表的模式...
阅读全文
posted @
2013-05-28 15:08
momingliu11
阅读(590)
推荐(0) 编辑
正则表达式
摘要:192.168.4.5。 \\Server57\Share。johnd@contoso.com。您马上会认出这三个条目是 IP 地址、通用命名约定 (UNC) 路径以及电子邮件地址。您的大脑识别出了它们的格式。四组数字、反斜线符号、@ 符号以及其他提示都表明了这些字符串代表的数据类型。不必深思,您可以快速识别出 192.168 本身是一个无效的 IP 地址、7\\Server2\\Share 是无效的 UNC,joe@contoso 也是无效的电子邮件地址。遗憾的是,计算机必须经过一番努力才能“了解”诸如以上的复杂格式。正则表达式即应运而生。正则表达式是使用特殊正则表达式语言编写而成的字符串,
阅读全文
posted @
2013-05-28 13:13
momingliu11
阅读(522)
推荐(0) 编辑
循环while、foreach-object
摘要:${D:\ii.txt}等同于: gc d:\ii.txt${D:\ii.txt}|`ForEach-Object {$_ + "mm"}while (get-process -name notepad | select -Property Responding) {}Get-Datewrite-host "notepad is not responded."do {代码} while(表达式) do {代码} until(表达式) foreach (成员变量 in 数组) {代码} 利用迭代执行代码,要在同一次聚集所有的对象,需要足够多的内存forea
阅读全文
posted @
2013-05-27 21:11
momingliu11
阅读(421)
推荐(0) 编辑
特殊符号的使用示例(特殊字符,split)
摘要:保持原意输出使用“`”$uri="https://pic.blob.core.chinacloudapi.cn/`$logs?restype=container&comp=list"如上可以保证 $logs原意输出=============================$m="ab(rrw)af"...
阅读全文
posted @
2013-04-10 21:18
momingliu11
阅读(898)
推荐(0) 编辑
注册表管理(本地、远程)
摘要:查看项目属性:Get-ItemProperty C:\Windows查看注册表项:Get-Item -path registry::HKLM\SYSTEM\CurrentControlSet\Control\CrashControl Get-Item -path HKLM:\SYSTEM\Curre...
阅读全文
posted @
2013-03-19 17:15
momingliu11
阅读(1079)
推荐(0) 编辑
start-job function 传递参数
摘要:$j2="ww"$j3="tt"start-job -ScriptBlock { ##这半个大括号不能换行到下一行,否则出现语法错误param($j2,$j3)function wt{ param ($t1,$t2) $t1+" l ly "+$t2|out-file d:\j.txt}wt -t...
阅读全文
posted @
2013-03-17 21:01
momingliu11
阅读(645)
推荐(0) 编辑
远程管理WinRM,Enter-PSSession
摘要:$s="hello"Invoke-Command 192.168.12.99 -Credential administrator {param ($s) write-host $s+"abc"} -ArgmentList $s Enable-PSremotingDisable-PSremoting
阅读全文
posted @
2013-03-15 15:17
momingliu11
阅读(23161)
推荐(1) 编辑
PowerShell端口连通性测试
摘要:在PowerShell中,使用“Test-Connection”命令可以测试对端主机是否存活,相当于批处理中的Ping命令,但是如果要测试对端主机的某个端口是否可以连通,批处理中可以使用Telnet命令,那在PowerShell中还有类似的命令吗?很遗憾,没有。需要通过调用.Net对象才可以实现。判断192.168.1.10的80端口是否可以连通,方法如下:$tcp = new-object Net.Sockets.TcpClient$tcp.Connect("192.168.1.10",80)如果该端口可以连通,则无任何返回值;如果不能连通,则会返回如下错误信息:使用“2
阅读全文
posted @
2013-03-12 22:08
momingliu11
阅读(11278)
推荐(1) 编辑
事件日志保存在以当前日期为名的文件夹下
摘要:wevtutil epl setup c:\setup.evtx============================================#定义事件日志保存位置,每天的事件日志保存在以当前日期为名的文件夹下$eventlog_folders = "c:\eventlogs"If (!(...
阅读全文
posted @
2013-03-05 19:39
momingliu11
阅读(493)
推荐(0) 编辑
PowerShell性能监控告警
摘要:实际上,我们可以通过PowerShell来获取性能计数器的值,比如当计算机可用内存小于500MB时,则自动发送邮件告警。在PowerShell中,并没有专门的命令来获取性能计数器的值,也无法直接发送邮件,都需要先创建.Net Framework类的实例。1)获取性能计数器代码如下:#新建性能计数器对...
阅读全文
posted @
2013-03-05 19:37
momingliu11
阅读(4425)
推荐(0) 编辑
PowerShell脚本保存密码
摘要:当使用批处理或VBS脚本访问远程计算机的时候,我们可以直接将其用户名和密码写入到脚本中,但是在PowerShell中,则不允许直接将密码写入其中,这虽然在很大程度上提高了脚本的安全性,但有时候却也给我带来了一些麻烦。 如果我们要获取计算机(192.168.12.6)的系统信息,则需要使用Get...
阅读全文
posted @
2013-03-05 19:35
momingliu11
阅读(2893)
推荐(0) 编辑
PowerShell写入事件日志
摘要:可能大家都知道,在PowerShell中使用“Get-Eventlog”命令可以查询Windows系统中的事件日志,如常见的应用程序、系统以及安全日志。但有的时候我们可能又需要将一些关键信息输出到事件日志中,我们就可以使用System.Diagnostics.EventLog类,不仅可以将信息写入到传统事件日志(即系统、应用程序,以及安全)中;还可以创建自己的事件日志,并将日志写入其中。 在写入事件日志之前,必须创建来源,通过来源可以很快的定位该事件的源头,如下图1所示。创建事件来源后,还需要将其与事件日志名称进行关联,然后再写入特定的信息。同一个事件源只能被写入到一种事件日志中,如写...
阅读全文
posted @
2013-03-05 19:33
momingliu11
阅读(3239)
推荐(0) 编辑
PowerShell显示进度条
摘要:在运行脚本的时候,如果脚本运行时间较长,就会不知道脚本的运行状况如何,如果在运行过程中有一个进度显示,那将会方便很多。在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
阅读全文
posted @
2013-03-05 19:30
momingliu11
阅读(2581)
推荐(1) 编辑
Select-String搜索字符串性能问题
摘要:今天在一个脚本中需要用到“select-string”用来查找关键字,脚本很容易就写好了,但是在运行该脚本的时候却发现要将近20秒才能完成,执行效率太低了,仔细把脚本从头到尾看了一遍,觉得问题就是出在“select-string”身上,因为这其中要遍历的文本文件有6MB多大小。 因为在脚本中很多地方需要在前一句命令的执行结果中查找关键字,为了方便,都是直接通过管道符将结果传给了“select-string”进行搜索,这样的搜索结果也很容易进行二次加工,如下:netstat -an |select-string "ESTABLISHED"TCP 192.168.1.12:49
阅读全文
posted @
2013-03-05 19:28
momingliu11
阅读(1321)
推荐(0) 编辑
使用Group-Object进行分组
摘要:对不同类型文件分组,并分别统计其数量get-childitem | group-object extension -noelementCount Name----- ---- 1 .android 9 1 .rnd找出数量多于1个字符"a", "b", "c", "c", "d" | group-object -noelement | where {$_.Count -gt 1} Count Name ----- ---- 2 c返回唯一值"a", "b"
阅读全文
posted @
2013-02-24 14:40
momingliu11
阅读(353)
推荐(0) 编辑
获取脚本运行时长
摘要:$starttime=get-date##此处为脚本内容##(New-TimeSpan $starttime).TotalSeconds #获取脚本运行时长
阅读全文
posted @
2013-01-28 11:13
momingliu11
阅读(274)
推荐(0) 编辑
硬件信息统计_读取输出Excel_显示进度
摘要:#该脚本实现功能:通过WMI读取计算机硬件信息:计算机名称、IP地址、计算机型号、计算机序列号、BIOS版本、操作系统版本、CPU型号、CPU核心数量、内存大小、分区大小、网卡使用状态、网卡个数,并可显示脚本执行进度;#“$strpath”变量定义了计算机信息存储位置,每列信息都要填写完整;“$strpath2”变量定义了结果保存位置,该文件自动生成,无需手工创建;#如果该计算机可以ping通,则取其相关信息;如果无法ping通,则只输出其计算机IP地址信息#####################################################################
阅读全文
posted @
2013-01-26 20:37
momingliu11
阅读(1435)
推荐(0) 编辑