PowerShell

PowerShell

PowerShell是微軟公司為 Windows 環境所開發的殼程式及腳本語言技術,採用的是命令行界面。

PowerShell概念

即開發代號為Monad的命令行外殼和腳本系統管理工具。
powershell
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 。

相關詞條

相關搜尋

熱門詞條

聯絡我們