Credentials abspeichern

So lange man ein Script im Editor ausführt, ist es möglich über
„read-host –assecurestring“ ein Passwort abzufragen und dann weiter im Script zu benutzen. Was ist aber, wenn das gleiche Script automatisch laufen soll und der User der die Rechte für eine bestimmte Aktion im AD oder auf einem Fileserver kein Rechte hat als Task zu Laufen. In meinem Fall, war es eine Abfrage auf den Exchange im Office365 ohne AD FS Anbindung.

Hier meine Idee und Umsetzung

Anlegen eines Ordners für das Passwortfile

- Der User der später das Script ausführt bekommt Leserechte auf das Verzeichnis
- Die Gruppe der User, die die Zugangsdaten kennen sollten Schreib-/Leserechte
bekommen.
- Wichtig! Alle anderen Berechtigungen auf das Verzeichnis sollten entfernt werden,
damit die Datei mit den Zugangsdaten kopiert werden kann.

Anlegen der Passwort Datei
read-host-assecurestring|convertfrom-securestring | out-file “C:\Office365\cred.txt”

Einlesen des Passworts und herstellen einer Verbindung zu Office365
cls
# Modul für Office 365 laden
if ((Import-Module-NameMSOnline-ErrorActionSilentlyContinue) -eq $null)
{
Import-ModuleMSOnline
}
# Einlesen der Credentials
$Password = get-content “C:\Office365\cred.txt” | convertto-securestring


# Balduin.Boxer@test.onmicrosoft.com -> User ersetzt.
$O365Cred = new-object -typename System.Management.Automation.PSCredential`
-argumentlist “Balduin.Boxer@test.onmicrosoft.com“, $password

$O365Session = New-PSSession-ConfigurationName Microsoft.Exchange`
-ConnectionUri https://ps.outlook.com/powershell-Credential

$O365Cred -AuthenticationBasic -AllowRedirection

Import-PSSession $O365Session-AllowClobber
Connect-MsolService Credential $O365Cred

Comments are currently closed.