發新話題

[軟體新聞] Windows平臺管理新秀-PowerShell

[軟體新聞] Windows平臺管理新秀-PowerShell



Windows PowerShell使用.NET物件模型,提供了命令列介面的互動式Shell環境和腳本語言,帶來更為彈性與自動化的管理方式。


管理微軟作業系統或伺服器的IT人員,經常是透過圖形化介面與作業系統、應用程式溝通,這和Unix系統管理員常在文字型的Shell介面底下工作,形成極大的差異。

雖然微軟也有命令列的介面,但是功能卻相當陽春,這和微軟在產品的發展策略上有關。微軟產品訴求簡單易用,圖形化介面比起Shell環境的確較為直覺,也因此一直以來形成不斷加強易用的圖形介面,卻很少在Shell環境中有所著墨。

反觀Unix系統,由於一開始就是多人多系統的環境,在管理上相對複雜,因此一直仰賴各式各樣的Shell環境,常見的如bash(Bourne-Again Shell)、csh(C Shell)等,讓管理人員可以撰寫腳本語言,透過直譯式的腳本程式控制各式各樣的系統。腳本程式的彈性,讓例行或複雜的管理工作,都可以透過適當的命令自動化管理,不但減輕IT人員負擔,系統管理也具效率、安全。

為了改善Shell環境,微軟也曾經推出WSH(Windows Shell Host)加強管理,使用者可以用VBScript或Jscript(不同於JavaScript)等語法撰寫程式,然而一方面是WSH在安全一直有所爭議,再者程式語法也不夠強大。

比起過去,微軟在企業端的解決方案涉足日深,為了提供管理員可以更彈性、更自動化的管理系統,Shell環境與腳本語言就更為重要。為了解決這個困境,微軟於是推出全新的Windows PowerShell,力拯過去Shell工具貧弱的形象。

透過.NET物件豐富Shell功能
開發代號為「Monad」(單子,意指構成世界的基本單位)的Windows PowerShell,提供了命令列介面的互動式Shell環境和腳本語言,以協助管理員執行彈性化、自動化的工作。

PowerShell是在POSIX(Portable Operating System Interface for Computer Environments)基礎上開發而成。POSIX是由IEEE定義的可移植的作業系統規格,其中包含了Shell和公用程式的定義。依循POSIX雖然可以帶來穩定的環境,但是這個規格開發出的Shell環境只能處理文字型態的資料,假如處理的資料是數字型態,也是透過文字轉換成數字,處理結束之後,再轉回文字型態進行後續處理。

但是PowerShell在設計之初就是希望能提供在Windows平臺上的最佳化Shell工具,如何充份運用Windows的資料型態和物件,而非僅僅使用文字型態,就成了開發上的重點,於是.NET的物件模型與技術就被導入PowerShell開發中。因此,PowerShell執行時輸出的資料不是文字,而是物件。物件同時擁有資料和方法,這使得使用者能以更互動的方式進行操作。以其他系統的Shell指令執行結果,只是傳回螢幕上的字串,使用者如果有需要取得特定範圍的資料,就必須使用額外的工具來抓取,但是PowerShell卻可以透過物件方法來取得結果。

PowerShell使用.NET的物件模型,可以直接處理資料原有的型態,也銜接.NET Framework的類別函式庫,增加PowerShell本身腳本語言之外的處理能力。

Cmdlets提高使用彈性
在PowerShell的設計理念中,為了能讓各種資料型態快速交換傳遞,因此重新設計指令,並且稱之為Cmdlets(念成command-lets)。Cmdlets是用.NET語言所寫成的指令,每個Cmdlets只具單一任務,而Cmdlets與Cmdlets透過管線結合,就可以協作出複雜的工作,這種概念也就是PowerShell之所以稱為單子的原因。

此外,過去大家所熟悉的Cmd.exe使用者並無法直接擴充內建指令,使用者固然可以建立外在的命令列工具,然後在Cmd.exe中執行。但是這些外部程式,無法讓其他Cmd.exe底下程式去取得執行程式的指令,發法發揮整合性運作的功能。而PowerShell提供足夠的擴充性,只要使用者遵循CMDLETS類別,軟體廠商也可以開發專屬Cmdlets,即可在PowerShell環境中,和其他應用程式和Windows系統整合管理。

一致化的指令命名方式
命令列介面使用的是另一種邏輯和作業系統互動,使用者必須知道指令才能執行動作。由於大多數的命令列指令和參數在發展 過程中並沒有一定的邏輯,也造成了使用上的困難度。

為了解決這樣的困擾,Cmdlets的命名結構是採「動詞-名詞」的方式所組成,例如Get-Help、Stop-Process、Export-Alias等。這種結合式的指令設計,除了讓使用者更容易記憶之外,也解決過去指令之間紛亂的操作方式。

例如net用「net start」、「net stop」來啟用或停止服務,但是行程卻是用「tasklist」、「taskkill」的方式羅列或中止行程,兩種指令使用方法沒有必然性。透過新的作法,可以用stop-process、start-process或stop-service、start-service等結構化的命名方式,有系統地記憶新的指令。

為了兼顧使用者的習慣,Cmdlets也使用別名(Alias)將舊指令融合進來,例如查詢目錄的Cmdlets是GetChildItem,但是使用者一樣可以沿用dir甚至是Unix的查詢指令ls來執行,得到相同的查詢結果。

強化Windows平臺上的管理功能
PowerShell在功能上還有許多值得注意的特點。例如在管線(Pipeline)是在不同功能單位傳遞資料的方法,可以將一串指令敘述的執行輸出結果傳遞給下個命令做為輸入。過去在Windows環境中,支援的管線功能不多,而現在PowerShell強化指令黏合的功能。

此外,登錄檔編輯在過去必須使用Regedit編輯器才能處理,現在PowerShell往前踏出一步,可以使用和一般存取檔案目錄的方式來檢視、變更登錄檔,對於進階使用者而言更為方便。

PowerShell也企圖避免管理上的突發狀況,因此在使用建立和改變物件時,可以搭配兩種參數以確認變更,一個是confirm,另一個是whatif。confirm參數在動作執行前會先要求確認,而whatif參數則像是預覽功能一樣,看到執行結果,但實際上物件並沒有發生改變。這些語法可以讓管理者在執行動作時,有了及時煞車的機制和測試的工具,確保每個動作執行與結果都在預期中。

PowerShell走進Windows伺服器
PowerShell的出現,將大幅改變Windows平臺上的管理方式,除了目前的平臺(Windows XP與Windows Server 2003)之外,日後發佈作業系統的Windows Vista或Longhorn Server都將使用PowerShell。另外在微軟本身的伺服器應用程式上,PowerShell將結合的更深,例如即將發佈的Exchange Server 2007與System Center Operations Manager 2007。

以Microsoft Exchange Server 2007為例,它的系統管理器(ESM)中的動作,都是利用PowerShell撰寫的,因此系統管理器所有動作都能在命令列中執行。另外Exchange Server 2007也有專屬的Cmdlets,用來操作OWA(Outlook Web Access)、虛擬目錄、信箱等。

透過靈活的PowerShell指令,管理人員可以將應用程式和系統結合運作,改善過去種種的限制,帶來更自動化和彈性化的管理方式。




軟件名稱:Windows PowerShell
軟件大小:未知
軟件語言:英文
授權方式:免費版
軟件類別:系統軟件-系統輔助
運行環境:Win9x/NT/2000/XP/

您可以從「Microsoft 下載中心」下載下列檔案:

x86 版的 Windows XP Service Pack 2 更新
訪客無法瀏覽此圖片或連結,請先 註冊登入會員

x64 版的 Windows XP Service Pack 2 更新
訪客無法瀏覽此圖片或連結,請先 註冊登入會員

x86 版的 Windows Server 2003 Service Pack 1 更新
訪客無法瀏覽此圖片或連結,請先 註冊登入會員

x64 版的 Windows Server 2003 更新
訪客無法瀏覽此圖片或連結,請先 註冊登入會員

Itanium 版的 Windows Server 2003 Service Pack 1 更新
訪客無法瀏覽此圖片或連結,請先 註冊登入會員


注意 電腦上如已安裝 Windows PowerShell 1.0,必須先移除 Windows PowerShell 1.0,才可安裝 Windows PowerShell 1.0 當地語系化更新套件。如果要移除 Windows PowerShell 1.0,請依照下列步驟執行: 1. 按一下 [開始],再按一下 [執行],輸入 appwiz.cpl,然後按一下 [確定]。
2. 按一下以選取 [顯示更新] 核取方塊。
3. 在 [目前安裝的程式] 清單中,按一下 [Windows PowerShell(TM) 1.0],然後按一下 [移除]。
4. 依照指示移除 [Windows PowerShell(TM) 1.0] 程式。


訪客無法瀏覽此圖片或連結,請先 註冊登入會員
訪客無法瀏覽此圖片或連結,請先 註冊登入會員
訪客無法瀏覽此圖片或連結,請先 註冊登入會員

[ 本帖最後由 蔡逸竹 於 2006-11-8 23:24 編輯 ]

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。