Windows PowerShell-Anbieter: Übersicht

Ein Windows PowerShell ermöglicht, dass jeder Datenspeicher wie ein Dateisystem verfügbar gemacht wird, als wäre er ein bereitgestelltes Laufwerk. Mit dem integrierten Registrierungsanbieter können Sie z. B. durch die Registrierung navigieren, wie Sie auf dem Laufwerk c Ihres Computers navigieren würden. Ein Anbieter kann auch die Cmdlets (z. B. Item , usw.) überschreiben, damit die Daten in Ihrem Datenspeicher behandelt werden können, wie Dateien und Verzeichnisse beim Navigieren in einem Dateisystem Get-Item Set-Item behandelt werden. Weitere Informationen zu Anbietern und Laufwerken sowie zu den integrierten Anbietern in Windows PowerShell finden Sie unter about_Providers.

Anbieter und Laufwerke

Ein Anbieter definiert die Logik, die zum Zugreifen auf, Navigieren und Bearbeiten eines Datenspeichers verwendet wird, während ein Laufwerk einen bestimmten Einstiegspunkt für einen Datenspeicher (oder einen Teil eines Datenspeichers) angibt, der vom Anbieter definierten Typ ist. Der Registrierungsanbieter ermöglicht Ihnen beispielsweise den Zugriff auf Hives und Schlüssel in einer Registrierung, und die LAUFWERKE HKLM und HKCU geben die entsprechenden Hives in der Registrierung an. Die Laufwerke HKLM und HKCU verwenden beide den Registrierungsanbieter.

Wenn Sie einen Anbieter schreiben, können Sie Standardlaufwerke angeben, die automatisch erstellt werden, wenn der Anbieter verfügbar ist. Sie definieren auch eine Methode zum Erstellen neuer Laufwerke, die diesen Anbieter verwenden.

Anbietertyp

Es gibt mehrere Arten von Anbietern, von denen jeder eine andere Funktionalität bietet. Ein Anbieter wird als Klasse implementiert, die von einem der Nachfolger der CmdletProvider-Klasse System.Management.Automation.SessionStateCategory abgeleitet wird. Informationen zu den verschiedenen Anbietertypen finden Sie unter Anbietertypen.

Anbieter-Cmdlets

Anbieter können Methoden implementieren, die Cmdlets entsprechen, wodurch benutzerdefinierte Verhalten für diese Cmdlets erstellt werden, wenn sie auf einem Laufwerk für diesen Anbieter verwendet werden. Je nach Typ des Anbieters sind verschiedene Cmdlets verfügbar. Eine vollständige Liste der Cmdlets, die für die Anpassung in Anbietern verfügbar sind, finden Sie unter Anbieter-Cmdlets.

Anbieterpfade

Benutzer navigieren zu Anbieterlaufwerken wie Dateisystemen. Aus diesem Grund erwarten sie, dass die Syntax von Pfaden den Pfaden entspricht, die in der Dateisystemnavigation verwendet werden. Wenn ein Benutzer ein Anbieter-Cmdlet ausgeführt, gibt er einen Pfad zu dem Element an, auf das zugegriffen werden soll. Der angegebene Pfad kann auf verschiedene Weise interpretiert werden. Ein Anbieter sollte einen oder mehrere der folgenden Pfadtypen unterstützen.

Laufwerkqualifizierte Pfade

Ein laufwerkqualifizierter Pfad ist eine Kombination aus dem Elementnamen, dem Container und den Untercontainern, in denen sich das Element befindet, und dem Windows PowerShell Laufwerk, über das auf das Element zugegriffen wird. (Laufwerke werden vom Anbieter definiert, der für den Zugriff auf den Datenspeicher verwendet wird. Dieser Pfad beginnt mit dem Laufwerknamen, gefolgt von einem Doppelpunkt (:). Beispiel: get-childitem C:

Anbieterqualifizierte Pfade

Damit die Windows PowerShell-Engine Ihren Anbieter initialisieren und nicht initialisieren kann, muss der Anbieter einen anbieterqualifizierten Pfad unterstützen. Beispielsweise kann der Benutzer den FileSystem-Anbieter initialisieren und initialisieren, da er den folgenden durch den Anbieter qualifizierten Pfad definiert: FileSystem::\\uncshare\abc\bar .

Anbieter-direkt-Pfade

Um Remotezugriff auf Ihren Windows PowerShell-Anbieter zu ermöglichen, sollte er einen anbieter direkten Pfad unterstützen, der direkt an den Windows PowerShell-Anbieter für den aktuellen Speicherort übergeben wird. Beispielsweise kann der Registrierungsanbieter Windows PowerShell \\server\regkeypath anbieterspezifischen Pfad verwenden.

Anbieterinterne Pfade

Damit das Anbieter-Cmdlet über nicht Windows PowerShell ApIs (Application Programming Interfaces) auf Daten zugreifen kann, sollte Ihr Windows PowerShell-Anbieter einen anbieterinternen Pfad unterstützen. Dieser Pfad wird nach dem "::" im durch den Anbieter qualifizierten Pfad angegeben. Der anbieterinterne Pfad für den Dateisystemanbieter Windows PowerShell z. B. \\uncshare\abc\bar .

Überschreiben von Cmdlet-Parametern

Das Verhalten einiger anbieterspezifischer Cmdlets kann von einem Anbieter überschrieben werden. Eine Liste der Parameter, die überschrieben werden können, und informationen dazu, wie sie in Ihrer Anbieterklasse überschrieben werden können, finden Sie unter Parameter des Anbieter-Cmdlets.

Dynamische Parameter

Anbieter können dynamische Parameter definieren, die einem Anbieter-Cmdlet hinzugefügt werden, wenn der Benutzer einen bestimmten Wert für einen der statischen Parameter des Cmdlets angibt. Ein Anbieter führt dazu eine oder mehrere dynamische Parametermethoden aus. Eine Liste der Cmdlet-Parameter, die verwendet werden können, um dynamische Parameter hinzuzufügen, und die Methoden, mit denen sie implementiert werden, finden Sie unter Dynamische Parameter des Anbieter-Cmdlets.

Anbieterfunktionen

Die System.Management.Automation.Provider.Providercapabilities-Enumeration definiert eine Reihe von Funktionen, die Anbieter unterstützen können. Dazu gehören die Möglichkeit, Platzhalter zu verwenden, Elemente zu filtern und Transaktionen zu unterstützen. Um Funktionen für einen Anbieter anzugeben, fügen Sie eine Liste von Werten der System.Management.Automation.Provider.Providercapabilities-Enumeration in Kombination mit einem logischen Vorgang als OR Die System.Management.Automation.Provider.Cmdletproviderattribute.Providercapabilities*-Eigenschaft (der zweite Parameter des Attributs) des Attributs System.Management.Automation.Provider.Cmdletproviderattribute für Ihre Anbieterklasse hinzu. Das folgende Attribut gibt beispielsweise an, dass der Anbieter die Funktionen System.Management.Automation.Provider.Providercapabilities ShouldProcess und System.Management.Automation.Provider.ProviderCapabilities Transactions unterstützt.

[CmdletProvider(RegistryProvider.ProviderName, ProviderCapabilities.ShouldProcess | ProviderCapabilities.Transactions)]

Hilfe zu Anbieter-Cmdlets

Beim Schreiben eines Anbieters können Sie Ihre eigene Hilfe für die von Ihnen unterstützten Anbieter-Cmdlets implementieren. Dies umfasst ein einzelnes Hilfethema für jedes Anbieter-Cmdlet oder mehrere Versionen eines Hilfethemas für Fälle, in denen das Anbieter-Cmdlet je nach Verwendung dynamischer Parameter anders agiert. Um die anbieterspezifische Cmdlet-spezifische Hilfe zu unterstützen, muss Ihr Anbieter die Schnittstelle System.Management.Automation.Provider.Icmdletprovidersupportshelp implementieren.

Die Windows PowerShell-Engine ruft die System.Management.Automation.Provider.Icmdletprovidersupportshelp.Gethelpmaml*-Methode auf, um das Hilfethema für Ihre Anbieter-Cmdlets anzuzeigen. Die Engine stellt den Namen des Cmdlets, das der Benutzer beim Ausführen des Cmdlets angegeben hat, und Get-Help den aktuellen Pfad des Benutzers zur Angabe. Der aktuelle Pfad ist erforderlich, wenn Ihr Anbieter verschiedene Versionen desselben Anbieter-Cmdlets für verschiedene Laufwerke implementiert. Die -Methode muss eine Zeichenfolge zurückgeben, die den XML-Code für die Cmdlet-Hilfe enthält.

Der Inhalt der Hilfedatei wird mitHILFE von PSMAML XML geschrieben. Dies ist dasselbe XML-Schema, das zum Schreiben von Hilfeinhalten für eigenständige Cmdlets verwendet wird. Fügen Sie den Inhalt der Hilfe zu Ihrem benutzerdefinierten Cmdlet der Hilfedatei für Ihren Anbieter unter dem -Element CmdletHelpPaths hinzu. Das folgende Beispiel zeigt das -Element für ein einzelnes Anbieter-Cmdlet und zeigt, wie Sie den Namen des Anbieter-Cmdlets angeben, command das Ihr Anbieter hat. Unterstützt

<CmdletHelpPaths>
  <command:command>
    <command:details>
      <command:name>ProviderCmdletName</command:name>
      <command:verb>Verb</command:verb>
      <command:noun>Noun</command:noun>
    <command:details>
  </command:command>
<CmdletHelpPath>

Weitere Informationen

Windows PowerShell Anbieterfunktionalität

Anbieter-Cmdlets

Schreiben eines Windows PowerShell-Anbieters