Get-SftpSessionParams

EulandaXtools — Funktionsreferenz

Get-SftpSessionParams Intern

ÜBERSICHT

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.

SYNTAX

Get-SftpSessionParams [-FromBound] <hashtable> [-Server] <string> [[-Port] <int>] [[-Certificate]
    <string>] [-User] <string> [[-Password] <securestring>] [[-PlainPassword] <string>]
    [[-PasswordPath] <string>] [[-AcceptKey] <bool>]

BESCHREIBUNG

Diese Hilfsfunktion erstellt und validiert die Parameter für eine SFTP-Session. Es gibt zwei Aufrufmodi: 1) -FromBound : Übergabe der kompletten @PSBoundParameters der aufrufenden Funktion.

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\.xml gemappt. Beispiel: -PasswordPath 'mysecret' ⇒ $HOME\.eulandaconnect\mysecret.xml

* Inhaltserkennung: CLIXML (Export-Clixml) wird als SecureString importiert; sonst Klartext → SecureString.

* Absoluter Pfad → wird 1:1 verwendet.

* Relativer Name → es wird zuerst $HOME\.eulandaconnect\ geprüft, danach $HOME\.ssh\. Wird nichts gefunden, zeigt die Fehlermeldung auf den .eulandaconnect-Pfad.

* Es wird keine Erweiterung angefügt; die Datei wird also inkl. Extension angegeben, (z. B. 'id_ed25519', 'id_rsa.key').

* .ppk wird abgelehnt.

Sonstiges

PARAMETER

-FromBound

Type: hashtable

Hashtable (typischerweise @PSBoundParameters) aus der aufrufenden Funktion. Ausgewertet werden: Server, Port, Certificate, User, Password, PlainPassword, PasswordPath.

-Server

Type: string

Hostname oder IP des SFTP-Servers. Pflicht.

-Port

Type: int
Default: 22

TCP-Port (Standard: 22). Falls leer/≤0 → 22.

-Certificate

Type: string

Pfad/Dateiname eines OpenSSH-Private-Keys. Relativ → siehe Pfadauflösung (zuerst $HOME\.eulandaconnect, dann $HOME\.ssh). .ppk ist nicht erlaubt.

-User

Type: string

Benutzername für die Anmeldung. Pflicht.

-Password

Type: securestring

SecureString für Passwort (bei Passwort-Login) oder Key-Passphrase (bei -Certificate).

-PlainPassword

Type: string

Klartext-Passwort (oder Passphrase) - wird intern in SecureString umgewandelt.

-PasswordPath

Type: string

Pfad/Name der Passwortdatei. Relativ → $HOME\.eulandaconnect\.xml. Dateiinhalt: entweder CLIXML-SecureString (Export-Clixml) oder Klartext.

-AcceptKey

Type: bool
Default: $true

Gibt an, ob der Host-Key des Servers automatisch akzeptiert wird (Standard: $true).

AUSGABEN

Hashtable

Parameter für Invoke-SFTPSession

BEISPIELE

# 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'

VERWANDTE LINKS

Invoke-SFTPSession

HINWEISE