Was ist psprovider in Powershell?

3246
James Jenkins

Ich bin neu bei PowerShell und versuche, das Konzept von psprovider zu verstehen. Ich weiß, ich kann verwenden, Get-PSProviderum eine Liste der verfügbaren psproviders zu zeigen

Die ganze Hilfe, die ich finde, geht davon aus, dass ich Dinge weiß, die ich nicht weiß. Suchen Sie nach einer grundlegenden Erklärung für psprovider.

3

2 Antworten auf die Frage

4
Walter Mitty

Dies ist aus der Hilfedatei für Get-PSProvider:

Among other things, Windows PowerShell providers determine which  data stores you can navigate through. 

Hier sind zwei Hauptkonzepte vergraben. Der erste ist das Konzept eines Datenspeichers oder, wenn Sie möchten, eines Containers. Die zweite ist das Konzept der Navigation.

Das Konzept des Datenspeichers ist grundlegend für die Bearbeitung von Daten. Wenn Sie mit Scripting oder Programmierung gearbeitet haben, sind Sie mit Variablen vertraut. Tatsächlich sind Variablen eine der von Get-PSProvider aufgelisteten Arten von Datenspeichern. Wenn Sie mit Datenbanken oder Websites gearbeitet haben, sind Sie mit anderen Arten von Datenspeichern vertraut. Eine zweite Art von navigierbarem Datenspeicher, der für Sie aufgelistet ist, ist ein Dateisystem. Wenn Sie mit Windows gearbeitet haben, sind Sie mit Ordnern und Dateien sowie dem Navigieren durch Ordner und Unterordner vertraut. Ordner werden in Powershell Verzeichnisse genannt, aber es ist dasselbe Konzept.

Die Registry ist eine andere Art von Datenspeicher.

Was für mich und vielleicht auch für Sie neu ist, ist die Idee, all diese verschiedenen Arten von Datenspeichern in eine allgemeine Oberklasse zu verallgemeinern und dann bestimmte Operationen für die gesamte Oberklasse zu definieren.

Get-ChildItem ist beispielsweise eine grundlegende Navigationsoperation, mit der Sie eine Baumstruktur von Containern durchlaufen können, die in einer Hierarchie angeordnet sind. Statt jedoch eine spezielle GCI für Dateien und eine andere für Registry-Einträge und eine andere für Variablen usw. zu implementieren, entschieden sie sich für die Implementierung einer einzelnen GCI, die für die Verwendung mit diesen drei und mehreren anderen angepasst werden könnte.

Dies ist nur der Anfang der Konzepte, aber ich hoffe, es hilft.

3
SimonS

PSProvider sind im Grunde Datenspeicher. Sie können diese wie einen normalen Datasystemordner behandeln. get-psproviderserhalten Sie eine Liste aller psproviders.

Beispiel: Mit war cmd.exees nicht möglich, Ihren aktuellen Standort in die Registry zu ändern. Sie hatten die Möglichkeit, die Registrierungseinstellungen mit cmd zu ändern, können jedoch nicht wie ein Verzeichnis oder cddie Registrierung behandelt werden.

In PowerShell ist die Registry ein PSProvider. bedeutet, dass Sie wie ein Datasystemordner darauf zugreifen können. Wenn Sie eingeben, befinden cd hklm:Sie sich tatsächlich in der lokalen Computerregistrierung und können auf deren Inhalt zugreifenGet-ChildItem

Dies hat den Vorteil, dass Sie beispielsweise PSDrives bereitstellen können, die tatsächlich in die Registry zeigen.

New-PSDrive -name G -PSProvider Registry -Root HKCU:\Software 

Das Laufwerk G: \ ist jetzt der Registerkarte Aktueller Benutzer> Software zugeordnet. (nur für die aktuelle PSSession)

Es gibt viele Funktionalitäten, die Sie mit PSProvidern nutzen können. Sie sollten ausführen und get-help about_providersfür weitere Informationen lesen .