使用 Windows PowerShell
雖然 GUI 管理工具通常可以比命令列工具更容易使用,但 Contoso 的 IT 部門經理相信您可以使用簡單的指令碼或單一命令來更快速達成許多管理工作。 例如,使用 Active Directory 使用者和電腦為數個使用者帳戶更新相同資訊的程序可能相當耗時。 不過,使用 Windows PowerShell 中的 Active Directory 模組可讓系統管理員快速執行這項重複性的工作。 您決定深入瞭解使用 Windows PowerShell 管理 Contoso 的伺服器基礎結構的影響。
概觀
Windows PowerShell 是一種命令列和指令碼環境,可讓您用來管理 Windows 作業系統的所有層面。 Windows PowerShell 使用稱為 Cmdlet 的特殊命令,這些 Cmdlet 是由動詞 - 名詞配對組成,例如 Restart-Computer
。
您也可以使用 Windows PowerShell 從遠端連線至其他電腦,甚至針對一系列的電腦執行 Windows PowerShell Cmdlet,讓您可以使用單一命令列指令對多部電腦執行動作。
Windows PowerShell 命令和 Cmdlet
命令是使用 Windows PowerShell 指令碼語言建立的建置組塊, 負責提供 Windows PowerShell 的主要功能。 您可以使用命令來建立自訂的解決方案,從而解決複雜的系統管理問題。
Cmdlet 是命令的基本元件。 Windows 作業系統和其他 Microsoft 產品中有數千種 Windows PowerShell Cmdlet 供您使用。 如先前所述,Cmdlet 是由動詞 - 名詞配對所組成。
Cmdlet 動詞
Cmdlet 名稱的動詞部分表示 Cmdlet 的用途。 Cmdlet 建立者可以使用一組經核准的動詞,以提供 Cmdlet 名稱的一致性。 常見動詞請參閱下表的說明。
動詞命令 | 說明 |
---|---|
取得 Yammer | 擷取資源,例如檔案或使用者。 |
設定 | 變更與資源相關聯的資料,例如檔案或使用者屬性。 |
新增 | 建立資源,例如檔案或使用者。 |
加 | 將資源新增至多個資源的容器。 |
移除 | 從多個資源的容器中刪除資源。 |
Cmdlet 名詞
Cmdlet 名稱的名詞部分表示 Cmdlet 會影響哪些類型的資源或物件。 在相同資源上作業的所有 Cmdlet 都應該使用相同的名詞。 例如,服務名詞是用於搭配 Windows 服務使用的 Cmdlet,而處理程序名詞則是用來管理電腦上的處理程序。
參數格式
參數會修改 Cmdlet 所執行的動作。 每個 Cmdlet 可以沒有參數、一個參數或許多參數。 參數名稱開頭為破折號 (-)。 空格用於分隔您想要從參數名稱傳遞的值。 如果您傳遞的值包含空格,則必須使用引號將文字包住。 某些參數接受多個值,這些值會以逗號分隔,而且不能有空格。
範例
您可以研究下列範例,以協助判斷如何使用 Windows PowerShell 來執行常見系統管理工作。 下列命令會顯示正在執行的服務清單。
Get-Service | Where-Object {$_.Status -eq "Running"}
下列命令會顯示名稱開頭為「win」的服務清單,並排除名為 WinRM 的服務。
Get-Service -Name "win*" -Exclude "WinRM"
下一個命令會將所有服務的清單輸出為文字檔,並為 HTML 輸出加以格式化。
Get-Service | ConvertTo-Html > File.html
上述命令的變化只會輸出有關服務的選取資料,然後將輸出匯出至 CSV 檔案。
Get-Service | Select-Object Name, Status | Export-CSV c:\service.csv
下列命令會擷取有關 Active Directory 使用者的指定資訊 (辦公室電話號碼和使用者主體名稱)。
Get-ADUser -Filter * -Properties OfficePhone | FT OfficePhone,UserPrincipalName
最後一個範例會擷取 AD DS 使用者的子集 (Marketing OU 中的使用者) 並且將描述新增至每個帳戶來修改其屬性。
Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Marketing,DC=Contoso,DC=Com" | Set-ADUser -Description "Member of the Marketing Department"
Windows PowerShell ISE
ISE 是一個完全圖形化的環境,提供指令碼編輯器、偵錯功能、互動式主控台,以及數個可協助您探索和學習新的 Windows PowerShell 命令的工具。 此課程模組可讓您對 ISE 的運作方式有基本認識。
窗格
ISE 提供兩個主窗格:指令碼窗格 (或指令碼編輯器) 和主控台窗格。 您可以將這兩個窗格相疊或並排為雙窗格配置。 您也可以將一個窗格最大化,並在窗格之間來回切換。 預設也會顯示 [命令附加元件] 窗格,讓您可以搜尋或瀏覽可用的命令,並針對您選取的命令查看和填入參數。 另外還有一個浮動的命令視窗,可提供相同的功能。
自訂檢視
ISE 提供數種自訂檢視的方式。 視窗右下方區域中的滑杆會變更現用字型大小。 [選項] 對話方塊可讓您自訂許多不同 Windows PowerShell 文字元素 (例如關鍵字和字串值) 的字型和色彩選擇。 ISE 支援建立圖形主題。 主題是字型和色彩設定的集合,您可以套用為群組,以自訂 ISE 的外觀。 有數個內建的主題包含適合提供簡報等用途的自訂項目。 ISE 也提供您建立自訂主題的選項。 其他 ISE 功能包括:
- 內建可擴充的程式碼片段程式庫,可讓您用來儲存常用的命令。
- 支援載入由 Microsoft 或協力廠商所建立的增益集,以提供額外功能。
- 整合 Windows PowerShell 的偵錯功能。
Windows PowerShell 遠端執行功能
Windows PowerShell 遠端處理的目的是連線到遠端電腦,讓您可以在其上執行命令,然後將結果導向回到本機電腦。 這可讓您使用用戶端電腦在您網路上的多部電腦上執行 Windows PowerShell 命令,而不是透過建立每台電腦的連接。
Windows PowerShell 遠端處理的主要目標是啟用批次管理,讓您能夠同時在一組遠端電腦上執行命令。 您可以使用下列三種方式的其中一種來進行遠端處理,如下表所述。
方法 | 描述 |
---|---|
一對一遠端處理 | 在一對一的遠端處理案例中,(也稱為互動式遠端處理),您可以連接到單一遠端電腦,並在其上執行 Windows PowerShell 命令,就和您登入電腦並開啟 Windows PowerShell 視窗一模一樣。 |
一對多遠端處理 | 在一對多的遠端處理案例中,(也稱為展開-傳送遠端處理),您會發出一個命令,以平行方式在一或多部遠端電腦上執行。 您不會以互動方式使用每部遠端電腦。 相反地,您的命令會在批次中發出和執行,並將結果傳回到您的電腦以供您使用。 |
多對一遠端處理 | 在多對一的遠端處理案例中,(也稱為收合傳送遠端處理」),多個系統管理員會對單一電腦進行遠端連線。 這些系統管理員通常會在相同的遠端電腦上擁有不同的權限,而且可能會在受限制的 Windows PowerShell 工作階段中工作。 |
警告
當您在多部電腦上執行命令時,請留意遠端電腦之間的差異,例如作業系統、檔案系統結構和系統登錄的差異。
PowerShell Direct
許多系統管理員都選擇在虛擬化環境中執行某些伺服器。 若要讓執行 Windows 10 或 Windows Server 的 Hyper-v VM 的管理更簡單,您可以使用稱為 PowerShell Direct 的功能。
PowerShell Direct 可讓您從主機作業系統的 VM 中執行 Windows PowerShell Cmdlet 或指令碼,而且不論網路、防火牆和遠端系統管理設定為何皆可執行。