共用方式為


Windows PowerShell 程式設計人員指南

此程式設計人員指南是以有興趣為系統管理員提供命令行管理環境的開發人員為目標。 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 運行時間會處理所有命令類型,就像使用管線執行 Cmdlet 一樣。

除了命令之外,Windows PowerShell 還支援各種可自定義的 Windows PowerShell 提供者,這些提供者提供特定的 Cmdlet 集合。 殼層會在 Windows PowerShell 提供的主機應用程式內運作(powershell.exe),但您可以從您可以開發以符合特定需求的自定義主應用程式存取它。 如需詳細資訊,請參閱 Windows PowerShell 的運作方式

Windows PowerShell Cmdlets

Cmdlet 是 Windows PowerShell 環境中使用的羽量型命令。 Windows PowerShell 運行時間會在命令行提供的自動化腳本內容中叫用這些 Cmdlet,而 Windows PowerShell 運行時間也會透過 Windows PowerShell API 以程式設計方式叫用這些 Cmdlet。

如需 Cmdlet 的詳細資訊,請參閱 撰寫 Windows PowerShell Cmdlet

Windows PowerShell 提供者

在執行系統管理工作中,使用者可能需要檢查儲存在數據存放區中的數據(例如文件系統、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 會話的 Runspace 物件,這是殼層和命令執行所在的作環境。 如需作詳細數據,請參閱 Windows PowerShell 的運作方式

Windows PowerShell 語言

Windows PowerShell 語言提供用來叫用命令的腳本函式和機制。 如需完整的腳本資訊,請參閱隨附於 Windows PowerShell 的 Windows PowerShell 語言參考。

擴充型態系統 (ETS)

Windows PowerShell 可讓您存取各種不同的物件,例如 .NET 和 XML 物件。 因此,為了呈現所有物件類型的通用抽象概念,殼層會使用其擴充類型系統 (ETS)。 大部分的 ETS 功能對使用者而言都是透明的,但腳本或 .NET 開發人員會將其用於下列用途:

  • 檢視特定物件成員的子集。 Windows PowerShell 提供數種特定物件類型的「調整」檢視。

  • 將成員新增至現有的物件。

  • 存取串行化物件。

  • 撰寫自定義物件。

    使用 ETS,您可以建立與 Windows PowerShell 語言相容的彈性新「類型」。 如果您是 .NET 開發人員,您可以使用與 Windows PowerShell 語言相同的語意來處理物件,例如,判斷物件是否評估為 true

    如需ETS及 Windows PowerShell 如何使用對象的詳細資訊,請參閱 Windows PowerShell 物件概念

Windows PowerShell 的程序設計

Windows PowerShell 會使用 .NET Framework 為命令、提供者和其他程式模組定義其程序代碼。 您不限於在為 Windows PowerShell 建立自定義模組時使用 Microsoft Visual Studio,不過本指南中提供的範例已知會在此工具中執行。 您可以使用支援類別繼承和屬性使用的任何 .NET 語言。 在某些情況下,Windows PowerShell API 需要程式設計語言才能存取泛型類型。

程式設計人員參考

如需針對 Windows PowerShell 開發時的參考,請參閱 Windows PowerShell SDK

開始使用 Windows PowerShell

如需開始使用 Windows PowerShell 殼層的詳細資訊,請參閱隨附於 Windows PowerShell 的 Windows PowerShell 開始使用。 快速參考三折檔也會提供做為 Cmdlet 使用的入門。

本指南的內容

主題 定義
如何建立 Windows PowerShell 提供者 本節說明如何建置 Windows PowerShell 的 Windows PowerShell 提供者。
如何建立 Windows PowerShell 主應用程式 本節說明如何撰寫作 Runspace 的主應用程式,以及如何撰寫實作其自定義主機主機的主應用程式。
如何建立 Windows PowerShell 嵌入式管理單元 本節說明如何建立嵌入式管理單元,以用來註冊元件中的所有 Cmdlet 和提供者,以及如何建立自定義嵌入式管理單元。
如何建立控制台殼層 本節說明如何建立無法延伸的控制台殼層。
Windows PowerShell 概念 本節包含概念資訊,可協助您從開發人員的觀點瞭解 Windows PowerShell。

另請參閱

Windows PowerShell SDK