天天看點

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 = ?

心算再快,應當也沒有敲Enter鍵快吧:

<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>

繼續閱讀