PSDriveProvider
PowerShell nutzt Provider um Zugriff auf Daten zu vereinfachen. Jeder kennt das "Dateisystem" und über die Präfixe "Cert:" oder "HKLM:", "HKCU:" erhält man einfach Zugriff auf Zertifikate und Registrierungsschlüssel. Warum gibt es aber keinen Provider für "Mail:", "Teams:" u.a. Mit SHiPS könnte sich das ändern.
Vorhandene PSProvider
Zuerst nutze ich mal das Commandlet "Get-PSProvider" um die Provider in einer normalen PowerShell 6 anzuzeigen.
PS C:\> Get-PSProvider Name Capabilities Drives ---- ------------ ------ Registry ShouldProcess {HKLM, HKCU} Alias ShouldProcess {Alias} Environment ShouldProcess {Env} FileSystem Filter, ShouldProcess, Credentials {C, D} Function ShouldProcess {Function} Variable ShouldProcess {Variable} Certificate ShouldProcess {Cert}
In der Spalte "Drives" steht das Laufwerk, mit dem Sie sich per Get-Item, CD u.a. arbeiten können. Das geht ganz einfach und ich erspare mir das hier. Starten Sie einfach selbst eine PowerShell und geben Sie mal ein:
dir cert: dir env: dir hkcu:
Da alle diese Datenpools wie "Laufwerke" aussehen, können sie sich natürlich auch per "cd" darin bewegen und mit get-item, get-childitem auf die Objekte zugreifen. Mit dem Commandlet "Get-PSDrive" sehen Sie aber noch WSMAN:
PS C:\> Get-PSDrive Name Used (GB) Free (GB) Provider Root CurrentLocation ---- --------- --------- -------- ---- --------------- Alias Alias C 789,47 163,15 FileSystem C:\ Users\fcarius Cert Certificate \ D 11,23 107,82 FileSystem D:\ Env Environment Function Function HKCU Registry HKEY_CURRENT_USER HKLM Registry HKEY_LOCAL_MACHINE Variable Variable WSMan WSMan PS C:> dir wsman: WSManConfig: ComputerName Type ------------ ---- localhost Container PS C:\> cd wsman: PS WSMan:\>
Ich kann auch noch einen "dir wsman:" und "cd wsman:" machen aber das "Verzeichnis localhost" kann ich nicht mehr aufmachen.
Der eigene PCProvider SHiPS
Schon viele Jahre habe ich mir überlegt, warum Microsoft nicht auch meine Mailbox per PSDriveProvider verfügbar macht. Mir würde es schon gefallen, wenn ich nicht per EWS oder MAPI durch die Ordner und Mails hangeln müsste, sondern mit Get-Item und Get-ChildItem einfach die Postfachinhalte lesen und ggfls. so gar bearbeiten könnte.
Aber auch andere Datenquellen wie z.B. Active Directory/LDAP, Microsoft Teams, Group-Mailboxen aber auch Konfigurationseinstellungen von Office 365 o.ä. wären interessante Module PSDriveProvider für einen einfachen Zugang.
Aktuell bin ich hier einfach mangels Zeit noch nicht weiter gekommen
Sollten Sie irgendwo einen PSDrive-Provider gefunden haben, den ich hier auflisten sollte, dann schreiben Sie mich bitte an.
Weitere Links
- SHiPS
https://GitHub.com/powershell/ships/ - SHiPS Architecture
https://GitHub.com/PowerShell/SHiPS/blob/development/docs/Design.md - ntSystemsPSDrive: a SHiPS drive for the
blog
https://ntsystems.it/post/ntsystemspsdrive-a-ships-drive-for-the-blog