Individuelle Lösungen durch eigene Skripte

Können die Anforderungen durch die mitgelieferten Skripte nicht erfüllt werden, besteht auch die Möglichkeit, eigene Powershell-Skripte zu erstellen. Diese müssen gewisse Anforderungen erfüllen, um in Password Safe verwendet werden zu können.

Speicherort, Name und Aufruf

Die Skripte müssen im folgenden Verzeichnis abgelegt werden:
C:\ProgramData\MATESO\Password Safe and Repository Service\System\PowerShell

Gespeichert werden die Skripte im Format .ps1.

Aufbau der Skripte

Die PowerShell-Skripte müssen wie folgt aufgebaut sein:

RunScript-Funktion

Password Safe ruft immer die RunScript-Funktion auf.

function RunScript
param (
        [String]$HostName,
        [String]$UserName,
        [String]$NewPassword,
        [String]$CredentialsUserName,
        [Security.SecureString]$CredentialsPassword
    )

Es können hierbei folgende Standard-Parameter verwendet werden:

  • UserName: Benutzername, von dem das Passwort geändert werden soll
  • Password: Passwort, das neu gesetzt werden soll
  • CredentialsUserName: Benutzername des Berechtigen, der das Reset durchführen kann (z.B. Administrator)
  • CredentialsPassword: Passwort des Berechtigten

scriptBlock

Der scriptBlock kann verwendet werden, wenn das Skript im Kontext eines anderen Benutzers laufen soll. Im scriptBlock wird dann die eigentliche Änderung durchgeführt.

Wichtig ist an dieser Stelle, dass man Password Safe über einen Write-Output ein Feedback über den Erfolgt übergibt. In folgendem Beispiel wird einfach mit true oder false gearbeitet. Denkbar wäre allerdings auch eine Fehlermeldung oder ähnliches.

$scriptBlock = {param ($UserName, $Password)
    // SAP Änderungen durchführen    
    if($OK) {
        Write-Output "true"
    } else {
        Write-Output "false"
    }

Selbstverständlich können CredentialsUserName und CredentialsPassword auch direkt im Skript (also ohne scriptBlock) verwendet werden. Als Beispiel kann hier das mitgelieferte MSSQL Skript eingesehen werden.

Invoke

Abschließend muss noch ein Credential erstellt werden. Diese wird dann per Invoke an den scriptBlock übergeben. Auch hier ist darauf zu achten, dass alle Fehler per Write-Output oder throw [System.Exeption] an Passwordsafe zurückgemeldet werden.

War das hilfreich?

Ja Nein
You indicated this topic was not helpful to you ...
Could you please leave a comment telling us why? Thank you!
Thanks for your feedback.