Individuelle Lösungen durch eigene Skripte

Als Ergänzung zu den frei verfügbaren Skripten können bei Bedarf auch eigene Powershell-Skripte erstellt werden. Folgend werden die benötigten Anforderungen beschrieben, um sie in Password Safe verwendet werden zu können.

Speicherort und Name

Speichern Sie die Skripte im Verzeichnis:
C:\ProgramData\MATESO\Password Safe and Repository Service\System\PowerShell

Speichern Sie 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
    )

Dafür können folgende Standard-Parameter verwendet werden:

  • UserName: Benutzername, dessen Passwort geändert werden soll.
  • Password: Passwort, das neu gesetzt werden soll.
  • CredentialsUserName: Benutzername des Berechtigen, der den 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 dienen.

Invoke

Abschließend muss noch ein Credential erstellt werden. Dieses 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.