1. Windows Powershell初接觸

1. Windows Powershell初接觸
我們之中有些人是因爲需要配置Exchange Server2007,纔開始對Windows Powershell全新的學習。但是,我認爲可以使用WMI命令是更爲直接的一個原因。當你想查詢你的操作系統信息的時候,三行的Powershell語句就可以取代20行的VBscript語句。Powershell是免費的,因此你只需要利用你的空餘時間來熟悉Powershell命令行中的語句。在你安裝Powershell之前,確認你在你的XP、Vista或2003操作系統上安裝了正確的版本.


學習Powershell的4大理由
1. 通過學習Powershell,你會瞭解到使用Powershell來配置你的服務器,肯定比使用圖形界面來配置要高效得多。使用Powershell腳本可以解決服務器的問題。通過Powershell你可以查詢到很多圖形界面所得不到的信息,運氣好的話你可以使用腳本來直接發現問題——而這些都很神奇。
下面我們就以一個小例子來向你演示Powershell的實力。正如你所知道的,任務管理器可以顯示所有的進程,而現在Powershell不但可以列出所有進程,它還可以把這些進程以公司名稱來分組。而你繼續簡單的輸入下面一行命令:
Get-process | group-object company

clip_p_w_picpath002
2. Powershell 可以達到和VBscript一樣的效果,並且命令更少。比如,Powershell使得對WMI編程更簡單,比如,輸入:get-wmiobject win32_bios.
get-wmiobject win32_bios

clip_p_w_picpath004
另外你還可以通過使用Powershell來取代VBscript而對活動目錄進行編程
3. 我預感到,老的CMD命令將會慢慢逝去,取而代之的是新的Powershell。更重要的是,新的Powershell語言將給你直接控制Windows操作系統的方法,這和Unix系統使用Bash語句來控制系統一樣。
簡單來說,Powershell就是Windows管理的明天。
4. 學習Powershell的主要理由是,你可以管理Exchange Server 2007, Longhorn Server (windows 2008).微軟考慮到在如此複雜的產品中,比如Exchange和Windows 2008中有太多的菜單和子菜單去管理,我們需要另外一種簡單辦法,這就有了非常好用的腳本語言,它就是Powershell.
另外,現有的Windows可執行命令,比如IPconfig或者Ping, 你可以像在老的CMD Dos裏面一樣,在Powershell裏面執行。

ping www.google.com

clip_p_w_picpath006



Powershell的簡單實例
點擊 開始-->運行,輸入Powershell,回車,在命令行裏面,輸入get-service
get-service

clip_p_w_picpath008

另外一個小例子是,在命令行裏面輸入get-wmiobject win32_computersystem
get-wmiobject win32_computersystem

clip_p_w_picpath010
從下面這個小例子,可以看到在Powershell只用三行語句就可以達到VBscript 20行的效果。我們的目標是查詢Win32_classes,我們可以使用老辦法(VBscript+WMI)或者使用新的Powershell。
VBScript語句
' Memory.vbs
' VBScript to discover how much RAM in computer
' -------------------------------------------------------'
Option Explicit
Dim objWMIService, objComputer, colComputer
Dim strLogonUser, strComputer
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colComputer = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer in colComputer
Wscript.Echo "System Name: " & objComputer.Name _
& vbCr & "Total RAM " & objComputer.TotalPhysicalMemory
Next
WScript.Quit
' End of Sample Memory WMI / VBScript

Powershell 語句
# Windows PowerShell script
# Displays ComputerName and memory
$CompSys = get-WmiObject win32_computersystem
"System Name = " + $CompSys.name
"Memory = " + $CompSys.TotalPhysicalMemory


微軟把新的Powershell命令行風格定爲“基於任務的”,像其他的編程語言,Powershell可以讓其自身來自動執行重複性的任務,特別的是,你可以把這些代碼存在cmdlets腳本以供以後使用。對於程序員和開發者而言,Powershell提供了一種辦法去執行操作系統對象,當然你首先需要安裝好 .net framework 2.0 (或3.0)


Powershell安裝方法
1. 安裝.net framework 2.0
3. 在運行欄裏面輸入“Powershell”


Powershell構架初接觸
基本的Powershell命令包含兩個詞的句子,一般都是以動詞開始,中間有一“減號-",並且以一個名詞結尾。請看下面的例子:
get-process (正確)
get - process (錯誤,沒有空格)
通過足夠多的時間和練習,你會馬上增加你的詞彙量的,推薦學習名詞的地方是使用Eventlog, process 和service, 比如
get-eventlog -list

clip_p_w_picpath012
通過上面的例子,我們知道有兩個減號,後面那個減號又稱爲開關或者在Powershell裏面成爲-參數。如果我們知道這些構架,空格的作用,我們就相當清楚了。比如, -list 告訴命令去顯示所有的系統日誌,但是,它需要和get-eventlog區分開,所以前面需要加空格
get-Eventlog - list (錯誤) 
get-Eventlog-list (錯誤) 
get-Eventlog -list (正確)
可能對所有的初學者而言最有用的命令就是,get-help, 或者,你可以簡單的輸入help,其實我們已經省略了默認動詞”get“。以此類推,你可以直接運行下面的命令
Process
help
eventlog
每個都相當於默認加了前綴get-
其他常見的動詞是Set, start, stop, new, add, copy 和Out(out 指的是輸出文件)
help process

clip_p_w_picpath014
get-help process

clip_p_w_picpath016
Powershell是種非常強大的語言,在此,我只是把其中表面的一部分簡單介紹了下。一旦你認真學習下去,你將能夠創造出很多複雜的腳本,其中也可以加上函數、循環、以及”where“條件

PowerShell的學習
如果Powershell是輛車,我們也只是剛剛開頭,只是碰到了油門。從現在開始,要麼你就和我一起學這門強大、靈活的Powershell語言,或者你可以自學。舉一個簡單例子,通過Powershell你可以創建新的對象,比如Directoryservices.directoryentry或者簡單點的,system.datetime. 請注意這些都是拜.Net framework所賜,我們纔可以創建這些對象


Windows Powershell總結
Powershell是門新的用戶友好的語言,我們可以用來管理Windows或者Exchange服務器。在Powershell的後續版本中,查詢WMI對象將變得更加容易。總而言之,Powershell將會成爲微軟的標準編程語言,同時通過Powershell的學習,你將更加容易的去配置Exchange服務器,AD, Windows Server2008等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章