Um in PowerShell zu überprüfen, ob ein SFTP-Transfer erfolgreich war, und das Ergebnis in ein Log zu schreiben, kannst du das folgende Skript verwenden. Dieses Skript setzt voraus, dass du das `WinSCP`-Modul verwendest, das eine beliebte Wahl für SFTP-Transfers in PowerShell ist. 1. Installiere das WinSCP-Modul, falls noch nicht geschehen: ```powershell Install-Module -Name WinSCP ``` 2. Erstelle ein PowerShell-Skript, das den SFTP-Transfer durchführt und das Ergebnis in ein Log schreibt: ```powershell # Importiere das WinSCP .NET Assembly Add-Type -Path "C:\Path\To\WinSCPnet.dll" # Konfiguriere die SFTP-Verbindung $sessionOptions = New-Object WinSCP.SessionOptions -Property @{ Protocol = [WinSCP.Protocol]::Sftp HostName = "example.com" UserName = "username" Password = "password" SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...=" } $logFile = "C:\Path\To\LogFile.log" try { $session = New-Object WinSCP.Session $session.Open($sessionOptions) # Definiere die Dateiübertragungsoptionen $transferOptions = New-Object WinSCP.TransferOptions $transferOptions.TransferMode = [WinSCP.TransferMode]::Binary # Führe den Dateiübertragungsbefehl aus $transferResult = $session.PutFiles("C:\Path\To\LocalFile.txt", "/remote/path/", $False, $transferOptions) # Überprüfe, ob der Transfer erfolgreich war if ($transferResult.IsSuccess) { Add-Content -Path $logFile -Value "$(Get-Date) - Transfer erfolgreich" } else { Add-Content -Path $logFile -Value "$(Get-Date) - Transfer fehlgeschlagen" } # Schließe die Sitzung $session.Dispose() } catch { # Fehlerbehandlung Add-Content -Path $logFile -Value "$(Get-Date) - Fehler: $_" } ``` Ersetze die Platzhalter wie `C:\Path\To\WinSCPnet.dll`, `example.com`, `username`, `password`, `C:\Path\To\LocalFile.txt`, und `/remote/path/` durch die entsprechenden Werte für deine Umgebung. Dieses Skript öffnet eine SFTP-Sitzung, überträgt eine Datei und schreibt das Ergebnis des Transfers in eine Logdatei. Wenn der Transfer erfolgreich ist, wird eine entsprechende Nachricht in das Log geschrieben. Andernfalls wird eine Fehlermeldung protokolliert.