Introduction To Windows PowerShell Fundamentals

Introduction To Windows PowerShell Fundamentals

活動:Windows Server 2012 好文比賽

開始練習Lab時,請可參考「[VirtualLabs]使用Microsoft Virtual Labs注意的地方」。

主題:Introduction To Windows PowerShell Fundamentals

 

Windows PowerShell是Microsoft為Windows環境所開發的Shell及指令碼語言技術,採用命令列介面。

它建立在.NET Framework的基礎上,它接受和返回.NET物件。以下的練習,您將學習使用基本的 Windows PowerShell命令(稱為cmdlet)。

 

Exploring Windows PowerShell

以下介紹PowerShell的一些操作方式,

輸入 help * ,按下Enter鍵

輸出的資料會超過一頁

image

按下Enter會顯示 下一行 資料,按下 空白鍵 會輸出下一頁,如果要取消輸出,可按下 Q

 

輸入 help Get-Com ,按下 Tab鍵 ,會出現 help Get-Command ,再按下 Tab鍵 會顯示下一個Get-Com 開頭的命令,如果要往後找,可按下 Shift + Tab 就可以了。

 

以下說明如何查看命令的Help

輸入 help Get-Command ,按下Enter鍵

help Get-Command是取得Get-Command命令簡裋的說明,可加入 -examples 查看範例, –detailed 查看詳細資訊 , –full 查看全部的資訊。

image

 

Get-Command Cmdlet : 會取得工作階段中 Cmdlet 及其他 Windows PowerShell 命令元素 (例如別名、函數、篩選、指令碼和應用程式) 的基本資訊。

image

 

我們還可以針對輸出做篩選,如下列出 Service Name為spooler的Service

輸入Get-Service Spooler,按下Enter鍵

image

 

接受萬用字串,如下,

輸入Get-Service M*,按下Enter鍵

image

 

可透過 pipe (|)  將前一個輸出作為後面命令的輸入,比如可設定輸出的format (使用格式化命令變更輸出檢視),如下

輸入Get-Service M* | Format-List,按下Enter鍵

image

 

或是找出那些Service的狀態是在Running(執行中),如下,

輸入Get-Service M* | Where-Object {$_.Status –eq “Running”} ,按下Enter鍵

image

 

Where是Where-Object的Alias,所以也可用Where代替 Where-Object,如下,

image

 

也可依Service的Status來排序,如下,

輸入Get-Service M* | Sort-Object Status,按下Enter鍵

or

輸入Get-Service M* | Sort Status ,按下Enter鍵

image

 

PowerShell是建立在.NET Framework的基礎上,所以我們可以檢視物件的metadata,如下看Get-Service Command的Member,

輸入Get-Service  | Get-Member ,按下Enter鍵

image

 

查詢Spooler Service所依賴的Service

輸入Get-Service Spooler | Select-Object ServicesDependedOn ,按下Enter鍵

image

 

Using whatif and confirm

[Command] –WhatIf : 會顯示結果,但不會真的去執行

輸入Stop-Service M* –WhatIf ,按下Enter鍵

image

 

[Command] –Confirm : 執行前都會先詢問

輸入Stop-Service M* –Confirm ,按下Enter鍵

 image

 

Creating and manipulating variables (Windows PowerShell 講座(4)—變數)

以下建立一個字串變數 $var (Windows PowerShell 規定變數名稱的第一個字元必須是 $ )

image

 

image

 

PowerShell中的變數可放任意值,如數值、字串、陣列等等,

image

 

如果將字串指定給宣告成數值的變數將會引發錯誤,

image

 

Comparison operators: –ne (not equals) –gt (greater than), –lt (less than), -ge (greater than or equal) and –le (less than or equals).

–ceq and –ieq: The “c” variant is case-sensitive and the “I” variant is case-insensitive。

image

image

 

Creating a script file

指令碼雖然是功能強大的工具,不過也可能遭人惡意誤用。為了保護使用者資料和作業系統的完整性,Windows PowerShell 包括了幾種安全性功能,執行原則就是其中一種。

Restricted是預設原則(允許執行個別命令,但無法執行指令碼),其他資訊請參考about_Execution_Policies

image

image

 

建立Script File可以使用 Windows PowerShell Integrated Scripting Environment (ISE).

執行Script File的方式,如下所示,

image

 

以下是建立Function的方式,

image

 

以上是Windows PowerShell的基本相關說明。

大家還能再參考Microsoft TechNet 上賴榮樞所寫的 Windows PowerShell 講座系列

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^