Wie verschiebe ich Dateien auf dem SFTP-Server in ein Archiv mit PowerShell?

Antwort

Um Dateien auf einem SFTP-Server mit PowerShell in ein Archiv zu verschieben, kannst du das `WinSCP`-Modul verwenden. Hier ist ein Beispiel, wie du das machen kannst: 1. **Installiere das WinSCP-Modul**: ```powershell Install-Module -Name WinSCP ``` 2. **Erstelle ein PowerShell-Skript**: ```powershell # Lade das WinSCP .NET Assembly Add-Type -Path "C:\Program Files (x86)\WinSCP\WinSCPnet.dll" # Erstelle eine neue WinSCP-Sitzung $sessionOptions = New-Object WinSCP.SessionOptions -Property @{ Protocol = [WinSCP.Protocol]::Sftp HostName = "your.sftp.server" UserName = "your_username" Password = "your_password" SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" } $session = New-Object WinSCP.Session try { # Öffne die Sitzung $session.Open($sessionOptions) # Definiere die Quell- und Zielverzeichnisse $remotePath = "/remote/path/" $archivePath = "/remote/archive/" # Liste die Dateien im Quellverzeichnis auf $directoryInfo = $session.ListDirectory($remotePath) foreach ($fileInfo in $directoryInfo.Files) { if (!$fileInfo.IsDirectory) { # Verschiebe jede Datei ins Archivverzeichnis $session.MoveFile($remotePath + $fileInfo.Name, $archivePath + $fileInfo.Name) Write-Host "Datei verschoben: $($fileInfo.Name)" } } } finally { # Schließe die Sitzung $session.Dispose() } ``` 3. **Führe das Skript aus**: Speichere das Skript in einer `.ps1`-Datei und führe es in der PowerShell-Konsole aus. Dieses Skript verbindet sich mit einem SFTP-Server, listet die Dateien in einem bestimmten Verzeichnis auf und verschiebt sie in ein Archivverzeichnis. Stelle sicher, dass du die Platzhalter (`your.sftp.server`, `your_username`, `your_password`, `ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx`, `/remote/path/`, `/remote/archive/`) durch deine tatsächlichen Werte ersetzt.

Frage stellen und sofort Antwort erhalten