Zum Hauptinhalt springen

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.