抢先体验 Windows PowerShell 2.0 全新技术
Windows PowerShell(下簡稱“PowerShell”)是微軟公司為Windows環境所開發的Shell及腳本語言技術,采用命令行界面。第1個版本于2006年第4季度正式發布。它的出現標志著微軟公司從傳統擅長的圖形化和桌面化的PC領域邁向了腳本化的服務器領域的重要一步。PowerShell是一種新的命令行外殼和腳本語言,提供了豐富的系統管理、控制和自動化任務功能,是一款既與對象的Shell,它建立在.NET Framework的基礎上,能夠運行在Windows XP SP2,Windows Vista,Windows 2003以及Windows 2008操作系統上,可使IT專業人員和開發人員控制和自動完成Windows和應用程序的強大之處在于可以調用.NET Framework中的類庫,并很好地與微軟之前圖形化界面設計中使用的COM、ADO及XML等已有的Windows管理模型發生交互。
這項全新的技術提供了豐富的控制與自動化的系統管理能力;而腳本語言(Scripting language)則是用來編寫程序的計算機語言。腳本語言通常都有簡單、易學且易用的特性,目的是希望讓開發人員快速完成程序的編寫工作。
什么是PowerShell
PowerShell是一款基于對象的Shell,建立在.NET框架之上。目前支持.NET Framework 2.0/3.0/3.5,能夠運行在Windows XP SP2、Windows server 2003、Windows Vista、Windows Server 2008和Windows 7等操作系統之上,同時支持操作WMI、COM、ADO.NET和ADSI等已有的Windows管理模型。
PowerShell是微軟為Windows Server 2008及其他服務器端的產品開發的一種命令行的外殼和腳本語言,它提供了豐富的控制與自動化的系統管理功能。不僅適用于對新一代微軟產品進行命令行下的管理,而且非常適合編寫語法簡潔且功能強大的批處理文件和腳本。
從Microsoft Exchange Server 2007開始,微軟的新一代服務器產品已經逐漸開始支持PowerShell,因此PowerShell成了圖形界面之外另一種強大的工作環境。但它與微軟Windows最初的GUI設計定位并不矛盾,原有的GUI操作界面針對非技術用戶。隨著Windows的市場開拓以及用戶反饋,微軟意識到對于普通用戶圖形化工具管理計算機可能是一種完美的手段,但對于高級技術人員必須擁有一個強大的自動化計算機配置工具。針對Windows本身的設計結構,即面向對象的方式管理所提供的諸如COM和WMI等管理模型,而不同于傳統Linux和Unix的通過System Call來管理系統配置。為此,微軟開始推行在自己原有的.NET Framework框架之上運行的一種新的語言,通過它使用.NET框架強大的功能來操作Windows管理對象,這大概Windows PowerShell產生的初衷。
PowerShell的設計目標
Windows PowerShell是專為系統管理員設計的新Windows命令行外殼。該外殼程序包括交互式提示和腳本環境,二者既可以獨立使用,也可以組合使用。與傳統接受和返回文本的大多數外殼程序不同,PowerShell是在.NET公共語言運行時(CLR)和.NET Framework的基礎上構建的,它接受和返回.NET對象。這一根本改變帶來了管理和配置的全新工具和方法。Windows PowerShell引入了cmdlet(讀作“command-let”)的概念,這是內置到外殼程序中的一種簡單的單一功能命令行工具。可以分別使用每個cmdlet,但是組合使用這些簡單工具執行復雜任務時才能發揮PowerShell強大的作用。
PowerShell的設計目標如下。
(1)特別為系統管理員設計的全新的Widows命令行Shell。
(2)與大多數接受并返回文本的Shell不同,PowerShell建立在.NET公共語言運行時和.NET框架之上,接受并返回.NET對象。
(3)引入了cmdlet的概念,這是內建在Shell中的簡單且單一功能的命令行工具。
(4)除了提供對文件系統的訪問外,還提供了對注冊表和數字簽名證書等其他數據存儲的訪問。
(5)可以在使用cmdlet的同時使用傳統的Windows工具。
(6)提供新的且基于對象的接口模型。
PowerShell的設計定位
PowerShell不僅提供了相當于bash的命令行Shell,同時也內置腳本語言及輔助腳本程序的工具。PowerShell以.NET技術為基礎,并且與現有的WSH保持回溯兼容。因此其腳本程序不僅能存取.NET CLR,也能使用現有的COM等技術。
PowerShell包含多種系統管理工具,以及簡易且一致的語法,內建的cmdlet標準工具可以用來處理常見的系統管理工作,如登錄數據庫、管理系統服務及處理事件日志等。Exchange Server 2007及System Center Operations Manager 2007等服務器軟件都將內建PowerShell。Monad是PowerShell正式發布前的項目代號,PowerShell將Windows環境各自分離的腳本語言(WSH)和操作指令重新緊密黏合,并讓Windows擁有與Unix旗鼓相當的Shell環境的腳本語言,這樣使得Windows更適合用于大型、復雜且重要的計算及運算環境。
微軟重新使用命令行的原因
從1981年IBM推出內含微軟16位版本的操作系統MS-DOS 1.0的個人PC開始,個人PC使用完全基于命令行的DOS操作系統。1985年微軟發布了Microsoft Windows 1.0,由于當時人們青睞的GUI平臺是GEM及Desqview/X,因此對其評價并不高。經過Windows 2.0/3.0/3.1/3.2,到Windows 95/NT/98/Me/2000,再到Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008和Windows 7整個操作系統系列,微軟逐漸占領了個人桌面PC操作系統。微軟Windows操作系統開始的最大的賣點是圖形化操作界面,但到了Windows Server 2008微軟又再次推出命令行工具。
這既是技術的進步,也是時代的進步。從最初個人對計算機的了解不多,圖形化界面的操作減低了復雜度,更利于用戶掌握計算機。而隨著PC的普及,對計算機的管理不能只停留在簡單的圖形化操作上。尤其是在計算機數量很大的情況下,逐臺配置會消耗大量的精力。在Windows操作系統不斷完善的過程中創建了如COM、WMI、ADO和XML等多種不同的管理模型,為了能夠在系統管理中兼顧這些模型,微軟重新推出命令行管理方式,以.NET Framework框架為基礎,通過PowerShell來統一管理。這是一種新的命令行外殼和腳本語言,用于完成系統管理和自動化任務。
腳本在企業IT管理中占有越來越重要的角色,好的腳本可以提升管理工作的效率,也可以使IT管理更能適應靈活多變的業務需求。但腳本難學、難編寫及難維護的特點,一直讓大多數用戶不能接受。微軟新推出的PowerShell作為新一代交互式的命令行及基于任務腳本編寫技術,在兼容現有腳本的同時,更針對系統管理任務提供全面的控制和自動操作,使腳本自動化管理得心應手。
學習方法
微軟Windows操作系統最初的設計目標是面向非技術用戶,甚至是對計算機不感興趣的人群,因此真正自動化且強大的Shell一直不是微軟公司關心的問題。隨著Windows開拓市場,用戶反饋以及Linux和Unix的發展,Windows原有的圖形化界面成為其局限。微軟意識到通過圖形化工具管理一臺計算機也許是最完美的手段,但是隨著管理計算機數目的不斷提升,必須依靠能夠自動化計算機配置的工具。這是微軟推出PowerShell的一個重要原因。
微軟在發展Windows的腳本語言時不使用已有的Shell或者擴展cmd.exe的原因在于用戶常見的bash和ksh是為Unix/Linux系統設計的優化后的Shell,從這些操作系統內核提供的System Call來看,Shell可以將內核的特性真正地表現出來。但Windows操作系統和Unix/Linux是完全不同,它通過面向對象的方式管理,提供了諸如COM和WMI等管理模型。傳統的Shell輸出信息是字符串,這樣有利于統一處理。但是字符串也是唯一能夠操作的對象,如果使用傳統的Shell對Windows進行管理將會廢棄Windows最擅長的面向對象的方法和概念。PowerShell開發團隊為了能夠為Windows提供更好的優化,而選擇了重新創建一種新語言。
PowerShell最初的藍本是Posix的Shell標準,并借鑒了大量的Perl語言中的精華,提供了一個基于對象的腳本環境。
Windows PowerShell入門主要面向之前沒有Windows PowerShell背景知識的IT專業人員、系統管理員、程序員和高級用戶。如果用戶對bash、perl、.Net、WMI、COM和VBScript相關的知識有所了解將會對學習PowerShell能有較大的幫助,但理解本系列文章的內容并不假定或要求讀者具備此方面的知識。但對于已掌握bash和ksh的用戶,可能會存在困難的步驟是轉換問題的處理方式和思維方式。因為PowerShell中不僅僅有字符串,而且有很多面向對象的方法。最初可能沒有意識到在PowerShell中工作時,所有使用的都是.NET對象,.NET對象是.NET類的實例,包括數據及與其關聯的操作,可對象視為具有屬性(與特性類似)和方法(可以對對象執行的操作)的數據實體。這就需要讀者在學習PowerShell的過程中能夠舉一反三,從軟件工程的角度更好地理解計算機科學的內容,以對象化的思想來理解整個編程過程會幫助讀者更快地學些掌握PowerShell的精髓。
總 結
PowerShell是門很強大的腳本語言,在本文介紹了PowerShell的設計目標和設計定位、微軟重新使用命令行操作系統的原因,以及對PowerShell語言的學習方法。將會在后續的文章中介紹PowerShell的基本語法、基礎應用和高級應用。基本語法部分詳細介紹PowerShell的下載、安裝、對象和對象類型、控制執行流、管道對象、運行腳本、運行函數、命令別名、提供程序、腳本文件、錯誤處理和調試,以及腳本簽名等;在基礎應用部分詳細介紹Shell環境及其配置、擴展類型系統、獲取幫助、進程和服務、以及輸入和輸出等;在高級應用部分詳細介紹PC設置、PowerShell和萬維網、服務器設置、與COM對象的交互、用WMI管理Windows、PowerShell擴展、PowerShell中的.NET事件、PowerTab對PoweShell的自動補全,以及PoweShell的安全性等。力圖使讀者能夠學會如何通過PowerShell對Windows系統進行管理,學會獨立地分析和解決實際問題,學會學習語言的基本方法。盡管本系列文章的重點是針對PowerShell的語法特性,但將會盡可能覆蓋對編程思想的梳理和介紹,以便讀者能在后續的實際工作中做到活學活用。
微軟MSDN原文地址:http://msdn.microsoft.com/zh-cn/ff943793.aspx
賽迪網原文地址:http://news.ccidnet.com/art/32857/20100608/2081031_1.html
作者: 付海軍
出處:http://fuhj02.cnblogs.com
版權:本文版權歸作者和博客園共有
轉載:歡迎轉載,為了保存作者的創作熱情,請按要求【轉載】,謝謝
要求:未經作者同意,必須保留此段聲明;必須在文章中給出原文連接;否則必究法律責任
個人網站: http://txj.shell.tor.hu
轉載于:https://www.cnblogs.com/fuhj02/archive/2010/11/15/1877329.html
總結
以上是生活随笔為你收集整理的抢先体验 Windows PowerShell 2.0 全新技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑破冰山—Oracle开发艺术 前言
- 下一篇: 2008R2 文件服务器迁移新招