本文目录
微软是一个很”低调”的公司,取名为微软,感觉有“微微软下去”的意思,这是个玩笑了。windows 操作系统 和office办公软件,如此之优秀,微软也没敢命名为PowerOS 和 PowerOffice,但是在Monad(PowerShell的前身)发布后的第二年(2006年),微软就直接就发布了Windows PowerShell 1.0,并且”大言不惭“地命名为PowerShell,这也有点太不淡定了。
今天我根据自己的体验来稍微总结一下为什么PowerShell如此之强大。
破天荒的方便
诸如存储计算中GB,MB,KB单位等;数组声明中的1..n和下标为-1的处理;还有所见即所得,通俗易懂的动词+名词结构Cmdlet。
面向对象
与面向过程相比,面向对象更方便更容易描述现实世界,也算赶上了时髦。
绑上.NET这棵大树
正所谓大树下面好乘凉,PowerShell绑上.NET这个大款了,借助.NET Framework平台强大的类库,几乎让一切都成为可能。
强大的兼容性
完全兼容windows 平台上其它调用,如可执行文件(exe),批处理bat和vb script等。
基于平台的可扩展性
微软有个优点,与应用相比,它更喜欢做平台。PowerShell早已变成一个平台,在PowerShell 刚发布的第二年,微软的System Center Operations Manager 和 SharePoint就提供了针对该平台的组件,后来的活动目录,Hyper-V,Windows Azure,Office 365就更不用说了。除了微软,亚马逊的云平台管理,Dell的out-of-hand 管理,也都提供了基于PowerShell的管理组件。PowerShell 俨然变成了一个标准,变成了一个规范。
举例介绍
如果您第一次听说过PowerShell,想稍微观望下,且看下面的10个例子。
- [数学计算] (39+79-51)*497/28 = ?
心算再快,应当也没有敲回车键快吧:PS> (39+79-51)*497/28 1189.25
- [日期] 距离下一个情人节还有多少分钟?
我知道距离多少天好算,如果变成分钟呢?$now=Get-Date $day=[datetime]'2-14' if($now -lt $day ){ $day.Subtract($now).TotalMinutes } else{ $day.AddYears(1).Subtract($now).TotalMinutes }
- [容量] 3GB > 3145726KB吗 ?
PS> 3gb -gt 3145726kb True
- [ID]能产生一个GUID吗?
PS> [guid]::NewGuid() Guid ---- 0f283ab4-f402-400c-98ce-359442f11f1a
- [文件] Windows目录下所有可执行文件exe的大小是多少?
dir $env:windir -Filter *.exe | measure -Sum Length
- [注册表] 注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 下 ‘Enable64Bit’的值是多少?
(Get-ItemProperty -Path hklm:SOFTWARE\Microsoft\.NETFramework ).Enable64Bit
- [证书] 指纹为[28DE15612AFF1CD69596AB17AF06AE86CB9C003B]的证书在证书存储区吗?
ls Cert:\LocalMachine\My\ | where { $_.Thumbprint -eq '28DE15612AFF1CD69596AB17AF06AE86CB9C003B' }
- [服务] 打印机服务有没有启动呢?
Get-Service spooler
- [进程] 当前运行了多少个IE进程?
(Get-Process iexplore ).count
- [报表] 将所有运行的进程信息导出为HTML报表?
Get-Process | ConvertTo-Html | Out-File a.html
更多内容请参阅:PowerShell在线教程
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
仅尝试了文章中的示例,果然厉害!
powershell给windows的自动化带来了质的改变,从此windows再也不用点点点进行一些cmd不能完成的操作,随着它的成长和成熟,势必会带来更大的惊喜。
但是微软也在面临着开源趋势的冲击,虽然.net的开源给powershell带来了希望,但它仍然是运行在闭源的windows系统之上。
未来windows何去何从,且让我们拭目以待。
以前你也能找到系统管理需要的命令行工具 没linux统一风格 没那么好使是真的 但你说没有就是不懂罢了 开源之前很多年 跨平台的mono就存在 说来说去你还是想当然
因为方便,所以强大。
如果他能兼容bash就好了..
第九个我在Win10上无法运行,改为 `(Get-Process explorer).count` 就可以了
因为winodws10上并没有ie,ie被替换成edge了。你可以试试 `(Get-Process chrome).count` …
我竟然今天才知道可以这么玩
我比你晚了半年,更惨
作者您好,您的这篇文章可能已经被抄袭了,链接如下。
https://www.windowszj.net/wzjc/win10/2205.html