Credential Vault
Das Credential Vault funktioniert ähnlich wie der Credential Locker, speichert aber alle Anmeldeinfor-mationen in einer Datei, anstatt für jede Anmeldeinformation eine eigene Datei abzulegen. Außerdem kann das Credential Vault Anwendungsspezifisch speichern und ist relativ einfach per .NET aufzurufen, so dass ein Extra-Modul nicht notwendig ist. Man spart sich also im Zweifel eine Extra-Abhängigkeit im Skript. Da es sich um eine Windows-Runtime-Klasse handelt, müssen Sie sie vorher laden.
Legen Sie Initial eine neue Instanz des Typs Windows.Security.Credentials.PasswordVault an. Das Ob-jekt stellt Ihnen anschließend Methoden zur Verfügung, um das Vault zu bearbeiten. Die relevanten Me-thoden sind Retrieve(), RetrieveAll(), FindAllByResource(), FindAllByUserName(), Add() und Remo-ve().
# Laden der Windows Runtime Klasse [Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials, ContentType=WindowsRuntime]
$Vault = New-Object Windows.Security.Credentials.PasswordVault
# Alle Anmeldeinformationen abrufen
$Vault.RetrieveAll()
# Das Vault verwaltet keine Powershell- sondern Password-Credentials. Es muß also # immer erst ein Password-Credential erzeugt werden, dass dann dem Vault
# hinzugefügt werden kann. Der Konstruktor hat 3 Parameter: Resource (Anwendung), # Username und password. Das Passwort wird dabei als Klartext übergeben.
# Anschließend kann das Password-Credential der add()-Methode als Argument # übergeben werden.
$Cred = Get-Credential
$Cred = new-object -Type Windows.Security.Credentials.PasswordCredential `
-ArgumentList 'Powershell','Holger','Passw0rd'
$Vault.Add($Cred)
# Neben Retrieve kann man auch nach einzelnen Anmeldeinformationen suchen:
$Vault.FindAllByUserName('Holger')
$Vault.FindAllByResource('Powershell')
Grundsätzlich ist der Umgang mit dem Credential Vault meiner Meinung nach vorzuziehen, da er ein-fach ist und kein zusätzliches Modul benötigt. Voraussetzung ist mindestens Windows 8 / Server 2012. Egal ob Sie Credential Vault oder Credential Locker verwenden - in jedem Fall arbeitet auch hier im Hintergrund wieder die Microsoft DPAPI. Auch das Credential Vault kann man übrigens mit Vaultcmd. exe auch direkt über die Kommandozeile steuern.