天天看点

PowerShell为什么强大

微软是一个很”低调”的公司,取名为微软,感觉有“微微软下去”的意思,这是个玩笑了。windows 操作系统 和office办公软件,如此之优秀,微软也没敢命名为PowerOS 和 PowerOffice,但是在Monad(PowerShell的前身)发布后的第二年(2006年),微软就直接就发布了Windows PowerShell 1.0,并且”大言不惭“地命名为PowerShell,这也有点太不淡定了。

今天我根据自己的体验来稍微总结一下为什么PowerShell如此之强大。

PowerShell为什么强大

为什么PowerShell如此之强大?

诸如存储计算中GB,MB,KB单位等;数组声明中的1..n和下标为-1的处理;还有所见即所得,通俗易懂的动词+名词结构Cmdlet。

与面向过程相比,面向对象更方便更容易描述现实世界,也算赶上了时髦。

正所谓大树下面好乘凉,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 = ?

心算再快,应当也没有敲回车键快吧:

<code>PS&gt; (39+79-51)*497/28</code>

<code>1189.25</code>

[日期] 距离下一个情人节还有多少分钟?

我知道距离多少天好算,如果变成分钟呢?

<code>$now</code><code>=</code><code>Get-Date</code>

<code>$day</code><code>=</code><code>[datetime]</code><code>'2-14'</code>

<code>if</code><code>(</code><code>$now</code> <code>-lt</code> <code>$day</code> <code>){</code>

<code> </code><code>$day</code><code>.Subtract(</code><code>$now</code><code>).TotalMinutes</code>

<code>}</code>

<code>else</code><code>{</code>

<code> </code><code>$day</code><code>.AddYears(1).Subtract(</code><code>$now</code><code>).TotalMinutes</code>

[容量]  3GB &gt; 3145726KB吗  ?

<code>PS&gt; 3gb </code><code>-gt</code> <code>3145726kb</code>

<code>True</code>

[ID]能产生一个GUID吗?

<code>PS&gt; </code><code>[guid]</code><code>::NewGuid()</code>

<code>Guid</code>

<code>----</code>

<code>0f283ab4-f402-400c-98ce-359442f11f1a</code>

[文件] Windows目录下所有可执行文件exe的大小是多少?

<code>dir </code><code>$env:windir</code> <code>-Filter</code> <code>*.exe | measure</code> <code>-Sum</code> <code>Length</code>

[注册表]  注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 下  ‘Enable64Bit’的值是多少?

<code>(</code><code>Get-ItemProperty</code> <code>-Path</code> <code>hklm:SOFTWARE\Microsoft\.NETFramework ).Enable64Bit</code>

[证书]  指纹为[28DE15612AFF1CD69596AB17AF06AE86CB9C003B]的证书在证书存储区吗?

<code>ls Cert:\LocalMachine\My\ |</code>

<code> </code><code>where { </code><code>$_</code><code>.Thumbprint </code><code>-eq</code> <code>'28DE15612AFF1CD69596AB17AF06AE86CB9C003B'</code> <code>}</code>

[服务]  打印机服务有没有启动呢?

<code>Get-Service</code> <code>spooler</code>

[进程]  当前运行了多少个IE进程?

<code>(</code><code>Get-Process</code> <code>iexplore ).count</code>

[报表]  将所有运行的进程信息导出为HTML报表?

<code>Get-Process</code> <code>| </code><code>ConvertTo-Html</code> <code>| </code><code>Out-File</code> <code>a.html</code>

<code></code>

请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

<b>本文转自babylater51CTO博客,原文链接: </b><b>http://blog.51cto.com/babylater/1919425</b>

<b>,如需转载请自行联系原作者</b>

继续阅读