PowerShell

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 2003操作系統上. 能夠同時支持WMI, COM, ADO.NET, ADSI等已有的Windows管理模型.
  根據微軟公司的計劃, 2009年將會實現所有微軟公司的GUI管理工具通過PowerShell作爲中間層對服務程序進行管理, 現階段例如Exchange 2007等已經支持PowerShell的管理. 可以預期, 使用PowerShell管理Windows服務器指日可待.
  目前PowerShell Version 2.0 正在緊鑼密鼓的開發中, 最近首席架構師接受了媒體採訪, 介紹了關於遠程管理等新特性.
  這項全新的技術提供了豐富的控制與自動化的系統管理能力;而“腳本語言”(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可以管理系統進程,服務,註冊表,系統日誌甚至證書等多項內容。想知道它支持哪些命令,只 需要在窗口內輸入get-command並按下回畫就可以了,這時屏幕上會顯示所有PowerShell支持的命令。
  此處除了可以顯示命令的類型外,還會顯示名稱和描述。想查看某個命令的詳細用法就可以使用 get-helt命令來獲得幫助,比如要查看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就可以打開記事本了。
  [1]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 = "http://www.cnpowershell.net "
  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(CTP3)
  常用開發工具
  powershell plus 版本 3.0.1.0



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章