EulandaXtools — Funktionsreferenz
Baut die Parameter als Hashtable für die SFTP-Funktonen zusammen. Unterstützt Passwort (secure/plain/file) oder Key-Auth (OpenSSH-Key, kein PPK). Kann direkt mit -FromBound @PSBoundParameters aufgerufen werden.
Get-SftpSessionParams [-FromBound] <hashtable> [-Server] <string> [[-Port] <int>] [[-Certificate]
<string>] [-User] <string> [[-Password] <securestring>] [[-PlainPassword] <string>]
[[-PasswordPath] <string>] [[-AcceptKey] <bool>]Diese Hilfsfunktion erstellt und validiert die Parameter für eine SFTP-Session. Es gibt zwei Aufrufmodi: 1) -FromBound
Relevante Schlüssel, die ausgewertet werden: Server, Port, Certificate, User, Password, PlainPassword, PasswordPath.
2) Klassisch per Einzelparametern (Server, Port, …).
Authentifizierungsvarianten
Pfadauflösung
* Absoluter Pfad → wird 1:1 verwendet.
* Relativer Name → wird als Basename interpretiert und auf $HOME\.eulandaconnect\
* Inhaltserkennung: CLIXML (Export-Clixml) wird als SecureString importiert; sonst Klartext → SecureString.
* Absoluter Pfad → wird 1:1 verwendet.
* Relativer Name → es wird zuerst $HOME\.eulandaconnect\
* Es wird keine Erweiterung angefügt; die Datei wird also inkl. Extension angegeben, (z. B. 'id_ed25519', 'id_rsa.key').
* .ppk wird abgelehnt.
Sonstiges
-FromBound
Type: hashtableHashtable (typischerweise @PSBoundParameters) aus der aufrufenden Funktion. Ausgewertet werden: Server, Port, Certificate, User, Password, PlainPassword, PasswordPath.
-Server
Type: stringHostname oder IP des SFTP-Servers. Pflicht.
-Port
Type: int
Default: 22TCP-Port (Standard: 22). Falls leer/≤0 → 22.
-Certificate
Type: stringPfad/Dateiname eines OpenSSH-Private-Keys. Relativ → siehe Pfadauflösung (zuerst $HOME\.eulandaconnect, dann $HOME\.ssh). .ppk ist nicht erlaubt.
-User
Type: stringBenutzername für die Anmeldung. Pflicht.
-Password
Type: securestringSecureString für Passwort (bei Passwort-Login) oder Key-Passphrase (bei -Certificate).
-PlainPassword
Type: stringKlartext-Passwort (oder Passphrase) - wird intern in SecureString umgewandelt.
-PasswordPath
Type: stringPfad/Name der Passwortdatei. Relativ → $HOME\.eulandaconnect\
-AcceptKey
Type: bool
Default: $trueGibt an, ob der Host-Key des Servers automatisch akzeptiert wird (Standard: $true).
HashtableParameter für Invoke-SFTPSession
# Aufruf in einer SFTP-Funktion, alle relevanten Parameter kommen aus dem Funktionskopf
$sessionParams = Get-SftpSessionParams -FromBound $PSBoundParameters# Passwort (SecureString)
$sec = Read-Host -AsSecureString 'Passwort'
$sessionParams = Get-SftpSessionParams -Server 'sftp.example.com' -User 'cn' -Password $sec# Passwort (Klartext)
$sessionParams = Get-SftpSessionParams -Server 'sftp.example.com' -User 'cn' -PlainPassword 'pass123'# Passwort aus Datei (relativer Name → $HOME\.eulandaconnect\mypwd.xml)
$sessionParams = Get-SftpSessionParams -Server 'sftp.example.com' -User 'cn' -PasswordPath 'mypwd'# Passwort aus Datei (absoluter Pfad)
$sessionParams = Get-SftpSessionParams -Server 'sftp.example.com' -User 'cn' -PasswordPath 'C:\Secure\mypwd.xml'# Key-Auth ohne Passphrase, relativer Keyname → zuerst $HOME\.eulandaconnect\id_ed25519.key, dann $HOME\.ssh\id_ed25519.key
$sessionParams = Get-SftpSessionParams -Server 'sftp.example.com' -User 'cn' -Certificate 'id_ed25519.key'# Key-Auth mit Passphrase im Klartext über Alias
$sessionParams = Get-SftpSessionParams -Server 'sftp.example.com' -User 'cn' -Certificate 'C:\keys\id_rsa' -PlainPassphrase 'secret'# Key-Auth mit Passphrase aus Datei, relativer Name → $HOME\.eulandaconnect\keypass.xml
$sessionParams = Get-SftpSessionParams -Server 'sftp.example.com' -User 'cn' -Certificate 'id_ed25519' -PasswordPath 'keypass'