Was ist psprovider in Powershell?

Was ist psprovider in Powershell?

Ich bin neu bei PowerShell und versuche, das Konzept von psprovider zu verstehen. Ich weiß, dass ich es verwenden kann, Get-PSProviderumeine Liste der verfügbaren PSProvider anzeigen

Alle Hilfe, die ich finde, setzt voraus, dass ich Dinge weiß, die ich nicht weiß. Ich suche nach einer grundlegenden Erklärung von psprovider.

Antwort1

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

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

Hier sind zwei wichtige Konzepte verborgen. Das erste ist das Konzept eines Datenspeichers oder, wenn Sie so wollen, eines Containers. Das zweite ist das Konzept der Navigation.

Das Konzept eines Datenspeichers ist grundlegend für die Arbeit mit Daten. Wenn Sie schon einmal mit Skripten oder Programmierung gearbeitet haben, sind Sie mit Variablen vertraut. Tatsächlich sind Variablen eine der Arten von Datenspeichern, die von Get-PSProvider aufgelistet werden. Wenn Sie schon einmal mit Datenbanken oder Websites gearbeitet haben, sind Sie mit anderen Arten von Datenspeichern vertraut. Eine zweite Art von navigierbarem Datenspeicher, die für Sie aufgelistet wird, ist ein Dateisystem. Wenn Sie schon einmal mit Windows gearbeitet haben, sind Sie mit Ordnern und Dateien vertraut und sogar mit der Navigation durch Ordner und Unterordner. Ordner werden in Powershell Verzeichnisse genannt, aber es ist dasselbe Konzept.

Das Register ist eine andere Art von Datenspeicher.

Was für mich und vielleicht auch für Sie neu ist, ist die Idee, alle diese verschiedenen Arten von Datenspeichern in einer allgemeinen Superklasse zu verallgemeinern und dann bestimmte Operationen für die gesamte Superklasse zu definieren.

Beispielsweise ist Get-ChildItem eine grundlegende Navigationsoperation, mit der Sie einen Containerbaum durchlaufen können, der in einer Hierarchie angeordnet ist. Doch anstatt eine spezielle GCI für Dateien, eine weitere für Registrierungseinträge, eine weitere für Variablen usw. zu implementieren, entschieden sie sich für die Implementierung einer einzigen GCI, die für die Verwendung mit allen drei und mehreren anderen angepasst werden kann.

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

Antwort2

PSProvider sind grundsätzlich Datenspeicher. Sie können diese wie einen normalen Datensystemordner behandeln. get-psprovidersSie erhalten eine Liste aller PSProvider.

Beispiel: Mit cmd.exewar es nicht möglich, Ihren aktuellen Speicherort in der Registry zu ändern. Sie hatten die Möglichkeit, die Registry-Einstellungen mit cmd zu ändern, aber Sie können sie nicht wie ein Verzeichnis oder cdin der Registry handhaben.

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

Dies hat den Vorteil, dass Sie beispielsweise PSDrives bereitstellen können, die tatsächlich auf die Registrierung verweisen.

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

Das Laufwerk G:\ ist jetzt dem aktuellen Benutzer > Software-Registrierung zugeordnet. (nur für die aktuelle PSSession)

Mit PSProvidern sind zahlreiche Funktionen möglich. Sie sollten sie ausführen und weiterlesen, get-help about_providersum weitere Informationen zu erhalten.

verwandte Informationen