共用方式為


建立 Windows PowerShell 屬性提供者

本主題描述如何建立提供者,讓用戶能夠作數據存放區中項目的屬性。 因此,這種類型的提供者稱為 Windows PowerShell 屬性提供者。 例如,Windows PowerShell 所提供的登錄提供者會將登錄機碼值當做登錄機碼專案的屬性來處理。 這種類型的提供者必須將 System.Management.Automation.Provider.IPropertyCmdletProvider 介面新增至 .NET 類別的實作。

備註

Windows PowerShell 提供範本檔案,可讓您用來開發 Windows PowerShell 提供者。 TemplateProvider.cs檔案位於適用於 Windows Vista 和 .NET Framework 3.0 運行時間元件的 Microsoft Windows 軟體開發工具包上。 如需下載指示,請參閱 如何安裝 Windows PowerShell 和下載 Windows PowerShell SDK。 下載的範本可在 <PowerShell 範例> 目錄中取得。 您應該製作此檔案的複本,並使用複本來建立新的 Windows PowerShell 提供者,移除您不需要的任何功能。 如需其他 Windows PowerShell 提供者實作的詳細資訊,請參閱 設計 Windows PowerShell 提供者

謹慎

屬性提供者的方法應該使用 System.Management.Automation.Provider.CmdletProvider.Writepropertyobject* 方法寫入任何物件。

定義 Windows PowerShell 提供者

屬性提供者必須建立支援 System.Management.Automation.Provider.IPropertyCmdletProvider 介面的 .NET 類別。 以下是 Windows PowerShell 所提供TemplateProvider.cs檔案的預設類別宣告。

定義基底功能

System.Management.Automation.Provider.IPropertyCmdletProvider 介面可以附加至任何提供者基類,但 System.Management.Automation.Provider.DriveCmdletProvider 類別除外。 新增您使用之基類所需的基底功能。 如需基類的詳細資訊,請參閱 設計 Windows PowerShell 提供者

擷取屬性

若要擷取屬性,提供者必須實作 System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* 方法,以支援來自 Get-ItemProperty Cmdlet 的呼叫。 這個方法會擷取位於指定提供者內部路徑之項目的屬性(完整)。

providerSpecificPickList 參數會指出要擷取的屬性。 如果此參數 null 或空白,則方法應該會擷取所有屬性。 此外,System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* 寫入代表所擷取屬性之屬性包 System.Management.Automation.PSObj ect 物件的實例。 方法應該不會傳回任何內容。

建議實作 System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* 支援選擇清單中每個元素的屬性名稱通配符擴充。 若要這樣做,請使用 System.Management.Automation.WildcardPattern 類別來執行通配符模式比對。

以下是 Windows PowerShell 所提供TemplateProvider.cs檔案的預設實作 System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty*

實作 GetProperty 的注意事項

下列條件可能適用於您實作 System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty*

將動態參數附加至 Get-ItemProperty Cmdlet

Get-ItemProperty Cmdlet 可能需要在運行時間動態指定的其他參數。 若要提供這些動態參數,Windows PowerShell 屬性提供者必須實作 System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* 方法。 path 參數表示完整提供者內部路徑,而 providerSpecificPickList 參數則指定命令行上輸入的提供者特定屬性。 如果屬性傳送至 Cmdlet,此參數可能會 null 或空白。 在此情況下,此方法會傳回物件,其屬性和欄位具有類似 Cmdlet 類別的屬性或 System.Management.Automation.RuntimeDefinedParameterDictionary 物件。 Windows PowerShell 運行時間會使用傳回的物件,將參數新增至 Cmdlet。

以下是 System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* 的默認實作, 來自 Windows PowerShell 所提供的TemplateProvider.cs檔案。

設定屬性

若要設定屬性,Windows PowerShell 屬性提供者必須實作 System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* 方法,以支援來自 Set-ItemProperty Cmdlet 的呼叫。 這個方法會在指定的路徑設定專案的一或多個屬性,並視需要覆寫提供的屬性。 System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* 也會寫入代表更新屬性屬性包的 System.Management.Automation.PSObject 物件實例。

以下是 Windows PowerShell 所提供TemplateProvider.cs檔案的預設 System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty*

實作 Set-ItemProperty

下列條件適用於 System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty*的實作:

附加 Set-ItemProperty Cmdlet 的動態參數

Set-ItemProperty Cmdlet 可能需要在運行時間動態指定的其他參數。 若要提供這些動態參數,Windows PowerShell 屬性提供者必須實作 System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters* 方法。 這個方法會傳回具有屬性和字段的物件,其剖析屬性類似於 Cmdlet 類別或 System.Management.Automation.RuntimeDefinedParameterDictionary 物件。 如果未新增任何動態參數,則可以傳回 null 值。

以下是 System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* 的默認實作, 來自 Windows PowerShell 所提供的TemplateProvider.cs檔案。

清除屬性

若要清除屬性,Windows PowerShell 屬性提供者必須實作 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* 方法,以支援來自 Clear-ItemProperty Cmdlet 的呼叫。 這個方法會為位於指定路徑的項目設定一或多個屬性。

以下是 Windows PowerShell 所提供TemplateProvider.cs檔案的預設 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty*

實作 ClearProperty 的注意事項

下列條件可能適用於您實作 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty*

將動態參數附加至 Clear-ItemProperty Cmdlet

Clear-ItemProperty Cmdlet 可能需要在運行時間動態指定的其他參數。 若要提供這些動態參數,Windows PowerShell 屬性提供者必須實作 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* 方法。 這個方法會傳回具有屬性和字段的物件,其剖析屬性類似於 Cmdlet 類別或 System.Management.Automation.RuntimeDefinedParameterDictionary 物件。 如果未新增任何動態參數,則可以傳回 null 值。

以下是 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* 的默認實作, Windows PowerShell 所提供的TemplateProvider.cs檔案。

建置 Windows PowerShell 提供者

請參閱 如何註冊 Cmdlet、提供者和主應用程式

另請參閱

Windows PowerShell 提供者

設計 Windows PowerShell 提供者

擴充物件類型和格式設定

如何註冊 Cmdlet、提供者和主應用程式