PowerShell概念
即開發代號為Monad的命令行外殼和腳本系統管理工具。PowerShell是微軟公司於2006年第四季度正式發布的. 它的出現標誌著, 微軟公司向伺服器領域邁出了重要的一步, 拉近了與Unix, Linux等作業系統的距離. PowerShell的前身命名為Monad, 在2006年4月25日正式發布beta版時更名為PowerShell.PowerShell是一款基於對象的shell, 建立在.Net框架之上, 目前支持.Net Framework 2.0. 能夠運行在Windows XP SP2, Windows Vista, Windows 7,Windows 2003作業系統上. 能夠同時支持WMI, COM, ADO, ADSI等已有的Windows管理模型.
根據微軟公司的計畫, 2009年將會實現所有微軟公司的GUI管理工具通過PowerShell作為中間層對服務程式進行管理, 現階段例如Exchange 2007、Exchange 2010,Lync Server 2010等都已經支持PowerShell的管理. 可以預期, 使用PowerShell管理Windows伺服器指日可待.
目前PowerShell Version 2.0 已經研發成功並廣泛套用於新系統Windows Vista。
這項全新的技術提供了豐富的控制與自動化的系統管理能力;而“腳本語言”(scripting languages)則是用來編寫程式的計算機語言。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓寫程式的人(開發者)快速完成程式的編寫工作。
Windows PowerShell 是微軟公司為 Windows 環境所開發的殼程式(shell)及腳本語言技術,採用的是命令行界面。這項全新的技術提供了豐富的控制與自動化的系統管理能力。
之前的專桉代號是 Monad,程式另一個名稱叫 Microsoft Shell(MSH)。
起源與目的
UNIX 系統一直有著功能強大的腳本(shell),Windows PowerShell 的誕生就是要提供功能相當於 UNIX 系統 BASH 的命令列殼程式,同時也內建腳本語言以及輔助腳本程式的工具。程式特性
一致性的設計讓所有工具和系統資料的使用語法、命名原則都相同。腳本語言簡單易學,而且能支援現有的腳本程式和命令列工具。
內含129種稱為 cmdlet 的標準工具,可用來處理常見的系統管理工作。
具備完整的擴充功能,獨立軟體商或開發者都能很容易的自行擴充。
cmdlet 是 Windows PowerShell 的指令,發音念法為 command-let。這相當於 DOS 或其他殼程式的內建指令,指令名稱的格式都是以連字號(-)隔開的一對動詞和名詞,並且通常都是單數名詞;例如線上查詢說明的 cmdlet 指令為 get-help,名稱的動詞部分大致有 get、set、add、remove 等等(字母都不分大小寫)。
技術基礎
Windows PowerShell 是以 .NET Framework 技術為基礎,並且與現有的 WSH 保持回溯相容,因此它的腳本程式不僅能存取 .NET CLR,也能使用現有的 COM 技術。同時也包含了數種系統管理工具、簡易且一致的語法,提升管理者處理,常見如登錄資料庫、WMI。Exchange Server 2007 以及 System Center Operations Manager 2007 等伺服器軟體都將內建 Windows PowerShell。PowerShell上手
具體步驟
在“運行“中輸入”PowerShell“命令或是直接在傳統的命令行模式中輸入“PowerShell”都可以進入PowerShell命令行模式。相對於傳統的命令行工具,PowerShell對很多用戶來說都會顯得非常陌生。究竟PowerShell支持哪些命令呢?其實PowerShell可以管理系統進程,服務,註冊表,系統日誌甚至證書等多項內容。想知道它支持哪些命令,只需要在視窗內輸入get-command並按下回車就可以了,這時螢幕上會顯示所有PowerShell支持的命令。
此處除了可以顯示命令的類型外,還會顯示名稱和描述。想查看某個命令的詳細用法就可以使用get-help命令來獲得幫助,比如要查看add-content命令的詳細內容,就可以輸入get-help add-content,按下回車後就會顯示命令的名稱,摘要,語法,詳細說明,相關連結以及備註。要想更深入了解powerShell就要經常獲取幫助喔。PowerShell套用
PowerShell可以方便地查看和結束系統內的進程,這樣不僅可以監控系統內的可疑進程,還可以輕鬆地將其關閉。要想查看當前系統內的進程,就需要打開PowerShell,輸入 get-process後按下回車,這樣系統中進程的句柄,進程名,進程占用處理器時間和進程唯一標識符就會顯示出來。
如果要結束某個或多個進程,就需要記錄下進程的唯一標識符,在powerShell中輸入Stop-process後根據提示輸入一個或多個進程的ID,按下回車後進程即可被自動結束。
用別名快速啟動程式
對於某些常用的命令,powershell還支持將其設定為別名使用。比如需要給get-process設定別外,就可以在powershell中輸入set-alias gp get-process,其中gp為命令get-process的別名。按下回車後直接用gp就可以代替get-process命令了。
同理很多系統內建的工具也可以在powershell中設定別名了,比如在powershell中輸入notepad後就可以啟動記事本。要想更快地啟動記事本,就可以為其設定別名,輸入set-alias np notepad後按下回車,這樣再次輸入np就可以打開記事本了。
PowerShell還有著管理系統服務,操作註冊表和眾多的網路相關操作。
範例
停止所有目前執行中的以"p"字元開頭命名的程式:PS> get-process p* | stop-process
停止所有目前執行中的所有使用大於1000MB記憶體的程式:
PS> get-process | where { $_.WS -gt 1000MB } | stop-process
計算一個目錄下檔桉內的位元組大小:
PS> get-childitem | measure-object -property length -sum
等待一個叫做"notepad"的程式執行結束:
PS> $processToWatch = get-process notepad
PS> $processToWatch.WaitForExit()
將"hello, world!"字串轉為英文大寫字元,成為"HELLO, WORLD!":
PS> "hello, world!".ToUpper()
在字串"string"的第1個字元後插入字串"ABC",成為"sABCtring":
PS> "string".Insert(1, "ABC")
訂閱一個指定的RSS Feed並顯示它最近8個主題:
PS> $rssUrl = "輸入地址 "
PS> $blog = [xml](new-object System Net WebClient).DownloadString($rssUrl)
PS> $blog.rss.channel.item | select title -first 8
把"$UserProfile"設定成數值"UserProfile"的環境變數:
PS> $UserProfile = $env:UserProfile
最新版本
目前的版本為 Windows PowerShell V2常用開發工具
powershell plus(收費)Windows Powershell ISE(V2自帶)
PowerGUI(免費)
PowerShell的版本
PowerShell自發行以來共有兩個版本:1、Windows PowerShell 1.0
2、Windows PowerShell 2.0
查看當前PowerShell的方法有兩種,分區為在PS命令行中輸入命令 $PSVersionTable 或 $host 。