本程式設計師指南針對有意為系統管理員提供命令列管理環境的開發者。 Windows PowerShell 提供一種簡單的方式,讓你建立管理指令來暴露 .NET 物件,同時讓 Windows PowerShell 代為完成大部分工作。
在傳統指令開發中,你必須撰寫參數解析器、參數綁定器、過濾器,以及每個指令所暴露的所有其他功能。 Windows PowerShell 提供以下功能,讓你更容易撰寫指令:
強大的 Windows PowerShell 執行時(執行引擎),擁有自己的解析器及自動綁定指令參數的機制。
用於格式化及使用命令列直譯器(CLI)顯示命令結果的工具。
支援高階功能(透過 Windows PowerShell 提供者),方便存取儲存的資料。
你可以以低成本,透過豐富的指令或一組指令來表示 .NET 物件,為管理員提供完整的命令列體驗。
下一節將介紹 Windows PowerShell 的關鍵概念與術語。 在開始開發前,先熟悉這些概念和術語。
關於 Windows PowerShell
Windows PowerShell 定義了幾種可用於開發的指令類型。 這些指令包括:函式、過濾器、腳本、別名以及可執行檔(應用程式)。 本指南中討論的主要指令類型是一種簡單且小型的指令,稱為「cmdlet」。 Windows PowerShell 提供一組 cmdlet,並完全支援根據你的環境自訂 cmdlet。 Windows PowerShell 執行時會像處理指令碼一樣,使用管線處理所有指令類型。
除了指令外,Windows PowerShell 還支援多種可自訂的 Windows PowerShell 提供者,提供特定的指令集。 這個 shell 運作在 Windows PowerShell 提供的主機應用程式(powershell.exe),同時也可從自訂主機應用程式存取,這些應用程式可根據特定需求開發。 欲了解更多資訊,請參閱 Windows PowerShell 運作方式。
Windows PowerShell Cmdlets
cmdlet 是一種輕量級指令,用於 Windows PowerShell 環境中。 Windows PowerShell 執行時會在命令列提供的自動化腳本中呼叫這些 cmdlet,Windows PowerShell 執行環境也透過 Windows PowerShell API 以程式方式呼叫這些 cmdlet。
欲了解更多關於 cmdlet 的資訊,請參閱 撰寫 Windows PowerShell 指令碼。
Windows PowerShell Providers
在執行管理任務時,使用者可能需要檢查儲存在資料儲存庫中的資料(例如檔案系統、Windows 登錄檔或憑證儲存庫)。 為了簡化這些操作,Windows PowerShell 定義了一個稱為 Windows PowerShell 提供者的模組,可用來存取特定的資料儲存庫,例如 Windows 登錄檔。 每個提供者都支援一組相關的 cmdlet,讓使用者能對存儲中資料有對稱的視圖。
Windows PowerShell 提供多種預設的 Windows PowerShell 提供者。 例如,登錄檔提供者支援 Windows 登錄檔的導航與操作。 登錄鍵以項目表示,登錄檔值則被視為屬性。
如果你公開了一個使用者需要存取的資料儲存庫,你可能需要自己撰寫 Windows PowerShell 提供者,詳見「建立 Windows PowerShell 提供者」。 欲了解更多關於 Windows PowerShell 提供者的資訊,請參閱 Windows PowerShell 運作方式。
主機應用程式
Windows PowerShell 包含預設的主機應用程式 powershell.exe,這是一個主控台應用程式,與使用者互動並透過主控台視窗來架設 Windows PowerShell 執行環境。
只有少數情況下,你才需要為 Windows PowerShell 撰寫自己的主機應用程式,雖然支援自訂化。 當你需要比預設主機應用程式更豐富的 GUI 介面時,可能需要自己的應用程式。 當你用命令列做 GUI 時,你可能也想用自訂應用程式。 欲了解更多資訊,請參閱 《如何建立 Windows PowerShell 主機應用程式》。
Windows PowerShell 執行環境
Windows PowerShell 執行時是實作指令處理的執行引擎。 它包含提供主機應用程式與 Windows PowerShell 指令及提供者之間介面的類別。 Windows PowerShell 執行時實作為當前 Windows PowerShell 會話的執行空間物件,該環境是執行殼與指令的運作環境。 有關操作細節,請參閱 Windows PowerShell 運作方式。
Windows PowerShell 語言
Windows PowerShell 語言提供腳本功能與調用指令的機制。 欲了解完整的腳本資訊,請參閱隨 Windows PowerShell 附帶的 Windows PowerShell 語言參考。
擴充型態系統 (ETS)
Windows PowerShell 提供多種不同物件的存取權限,例如 .NET 和 XML 物件。 因此,為了呈現所有物件類型的共通抽象,shell 採用其擴展型別系統(ETS)。 大多數 ETS 功能對使用者來說是透明的,但腳本或 .NET 開發者會將其用於以下目的:
查看特定物件成員的子集。 Windows PowerShell 提供對多種特定物件類型的「適應」檢視。
將成員加入現有物件。
存取序列化物件。
撰寫客製化物件。
使用 ETS,你可以建立與 Windows PowerShell 語言相容的彈性新「型別」。 如果你是 .NET 開發者,你可以使用與 Windows PowerShell 語言用於腳本相同的語意來處理物件,例如判斷物件是否應值為
true。欲了解更多關於 ETS 及 Windows PowerShell 如何使用物件的資訊,請參閱 Windows PowerShell 物件概念。
Windows PowerShell 程式設計
Windows PowerShell 定義了其指令、提供者及其他程式模組的程式碼,使用 .NET Framework 架構。 你並不限於使用 Microsoft Visual Studio 來建立 Windows PowerShell 的自訂模組,雖然本指南提供的範例已知能在此工具中執行。 你可以使用任何支援類別繼承和屬性使用權的 .NET 語言。 在某些情況下,Windows PowerShell API 要求程式語言能夠存取泛型型別。
程式設計師參考
關於開發 Windows PowerShell 的參考,請參閱 Windows PowerShell SDK。
開始使用 Windows PowerShell
欲了解更多關於開始使用 Windows PowerShell shell 的資訊,請參閱隨 Windows PowerShell 出廠的入門 指南。 同時也提供一份快速參考三折文件作為指令小程式的入門說明。
本指南內容
| 主題 | Definition |
|---|---|
| 如何建立 Windows PowerShell 主機應用程式 | 本節說明如何撰寫操作跑道空間的主機應用程式,以及如何撰寫實作自身自訂主機的主機應用程式。 |
| 如何建立 Windows PowerShell Snap-in | 本節說明如何建立用於註冊組件中所有指令與提供者的 snap-in,以及如何建立自訂 snap-in。 |
| Windows PowerShell 概念 | 本節包含概念性資訊,有助於你從開發者的角度理解 Windows PowerShell。 |