Receive Sftp Folder
Zuletzt geändert: 16.08.2026 19:06

Übersicht

Receive-SftpFolder #

ÜBERSICHT #

Lädt alle passenden Dateien eines SFTP-Ordners herunter (Worker mit flachen Parametern, inkl. Remote-Nachbehandlung und Logging).

SYNTAX #

Receive-SftpFolder [-Server] <string> [[-Port] <int>] [[-User] <string>] [[-PlainPassword]
    <string>] [[-PasswordPath] <string>] [[-Certificate] <string>] [-RemoteFolder] <string>
    [-LocalFolder] <string> [[-Mask] <string>] [[-PostAction] <string>] [[-PostPath] <string>]
    [[-PostExtension] <string>] [[-MaxFiles] <int>] [-PreserveTimestamp] [-RemoteTimeIsUtc]
    [[-Name] <string>] [[-LogFile] <string>] [[-TechnicalEmails] <string>] [<CommonParameters>]

BESCHREIBUNG #

Der parametergesteuerte Kern des SFTP-Eingangs (Vorgabe CN 16.08.2026): neue Aufrufer (EulandaXedi/Xsuite, deren Wahrheit in den SQL-Schemata liegt) brauchen KEIN partner.json-Format mehr - alles läuft über einzelne Parameter. Invoke-SftpDownload bleibt als kompatible Hülle für die Bestandskunden-Skripte bestehen und ruft diesen Worker.

Ablauf je Datei: herunterladen (Receive-SftpFile), optional den Remote-Zeitstempel übernehmen, danach die Nachbehandlung am Server: delete (löschen), move (nach -PostPath verschieben), rename (um -PostExtension ergänzen, z.B. ‘.done’) oder none. Fehler je Datei brechen den Lauf nicht ab.

Sichtbarkeits-Kontrakt: das ERGEBNISOBJEKT ist die Schnittstelle - auch ein Totalfehler (Login kaputt, Server nicht erreichbar) kommt als Objekt mit Success=$false und gefüllter Errors-Liste zurück, damit der Aufrufer ihn journalisieren kann. $null bedeutet ausschliesslich: nichts zu tun (keine passenden Dateien). Datei-Log und Fehlermail des LoggingContext sind die Alt-Strecke der partner.json-Skripte und nur aktiv, wenn -LogFile bzw. -TechnicalEmails gesetzt sind.

PARAMETER #

-Server #

Type: string

SFTP-Server (Hostname oder IP).

-Port #

Type: int
Default: 22

Port, Default 22.

-User #

Type: string

Benutzername.

-PlainPassword #

Type: string

Kennwort im Klartext (nur wenn kein anderer Weg möglich ist).

-Password #

Kennwort als SecureString.

-PasswordPath #

Type: string

Pfad zu einer per Export-Clixml gesicherten Kennwortdatei.

-Certificate #

Type: string

Pfad zum privaten Schlüssel (Zertifikats-Login).

-RemoteFolder #

Type: string

Remote-Ordner, aus dem gelesen wird.

-LocalFolder #

Type: string

Lokaler Zielordner der Downloads.

-Mask #

Type: string

Dateimaske (z.B. *.edi); leer = alle Dateien.

-PostAction #

Type: string
Default: 'none'

Nachbehandlung am Server nach erfolgreichem Download: none, delete, move oder rename. Unbekannte Werte werden je Datei als Fehler protokolliert (Verhalten der bisherigen partner.json-Strecke).

-PostPath #

Type: string

Zielordner der move-Nachbehandlung.

-PostExtension #

Type: string

Namenszusatz der rename-Nachbehandlung (z.B. ‘.done’). Die Maske so wählen, dass umbenannte Dateien nicht erneut matchen.

-MaxFiles #

Type: int
Default: 0

Maximale Anzahl je Lauf (0 = alle); Überzählige zählen als Skipped.

-PreserveTimestamp #

Type: Switch

Übernimmt den Remote-Zeitstempel auf die lokale Datei.

-RemoteTimeIsUtc #

Type: Switch

Interpretiert den Remote-Zeitstempel als UTC.

-Name #

Type: string

Anzeigename für Log und Ergebnis (z.B. der Partnername); leer = Servername.

-LogFile #

Type: string
Default: $null

Optionale Logdatei.

-TechnicalEmails #

Type: string
Default: $null

E-Mail-Adressen für technische Fehlerbenachrichtigungen.

AUSGABEN #

PSCustomObject (PartnerName, Success, Total, Succeeded, Failed,

Skipped, Errors, TransferedFiles) oder $null, wenn nichts zu tun war.

BEISPIELE #

Receive-SftpFolder -Server 'sftp.example.com' -User 'edi' -PlainPassword $pw -RemoteFolder '/out' -LocalFolder 'C:\Edi\In' -Mask '*.edi' -PostAction rename -PostExtension '.done'