Verschlüsselte Credential XML Datei für PowerShell erstellen

Für die Nutzung von Anmeldedaten in PowerShell Scripts gibt es mehrere Möglichkeiten, Credentials anzugeben. Für Scripts, die regelmäßig per Scheduled Task ausgeführt werden, eignet sich jedoch weder die direkte Eingabe, noch die Hinterlegung der Credentials in Klartext.

Für solche Zwecke lassen sich Credentials einmalig abfragen und verschlüsselt in eine XML-Datei exportieren. Diese Datei kann im entsprechenden Script während der Ausführung importiert und verwendet werden.

Get-Credential | Export-Clixml ".\Credentials.xml"

Die Ausgabe-Datei sieht wie folgt aus:

<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
  <Obj RefId="0">
    <TN RefId="0">
      <T>System.Management.Automation.PSCredential</T>
      <T>System.Object</T>
    </TN>
    <ToString>System.Management.Automation.PSCredential</ToString>
    <Props>
      <S N="UserName"><Benutzername></S>
      <SS N="Password"><Verschlüsseltes Passwort></SS>
    </Props>
  </Obj>
</Objs>

Verwendet werden kann die XML-Datei z.B. für ein Login zu Microsoft Azure wie folgt:

$Credentials = Import-Clixml -Path ".\Credentials.xml"
Login-AzureRmAccount -Credential $Credentials <- Legacy
Login-AzAccount -Credential $Credentials

Wichtig dabei ist, dass die Credentials XML Datei nur auf dem Gerät und mit dem User verwendet werden kann, mit dem sie auch erstellt wurde, da für die Verschlüsselung des Passworts die Windows Data Protection API verwendet wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.