SFTP-Upload per Posh-SSH - Fehler
Moin,
ich benötige ein PS-Script, welches mir ein paar Dateien zu einem externen FTP-Server hochkopiert. Bislang habe ich hier ein Script, das funktioniert aber nur für FTP. Bei IONOS wird SFTP demnächst benötigt.
Im Netz gibt es wohl so ein paar Vorschläge, aber irgendwie habe ich nichts passendes gefunden.
Nun habe ich gestern ein Script gefunden (https://learn.microsoft.com/en-us/answers/questions/969674/transfer-file ..), was ich leider abändern muss. Was ich bei diesem gut finde ist, dass das Passwort nicht im Klartext im Script steht. Ich habe versucht mit meinen Minimalkenntnissen aus zwei Scripte eins zu basteln. Funktioniert natürlich nicht.
Das Problem sind diese Zeilen:
foreach($item in (dir $LocalPath "*.txt")){
"Uploading $item..."
$uri = New-Object System.Uri($ComputerName+$SftpPath+$item.Name)
$webclient.UploadFile($uri, $item.FullName)
}
Die habe ich aus dem alten Script entnommen. Da ich keine Ahnung von PS habe, ist es für mich schwierig das zum Laufen zu bekommen. Vielleicht wäre einer/eine so nett und könnte das mit wenig Zeilen zum Laufen zu bringen.
Die Anwahl zum Server funktioniert soweit.
Hier das ganze Script, was aber nicht funktioniert.
ich benötige ein PS-Script, welches mir ein paar Dateien zu einem externen FTP-Server hochkopiert. Bislang habe ich hier ein Script, das funktioniert aber nur für FTP. Bei IONOS wird SFTP demnächst benötigt.
Im Netz gibt es wohl so ein paar Vorschläge, aber irgendwie habe ich nichts passendes gefunden.
Nun habe ich gestern ein Script gefunden (https://learn.microsoft.com/en-us/answers/questions/969674/transfer-file ..), was ich leider abändern muss. Was ich bei diesem gut finde ist, dass das Passwort nicht im Klartext im Script steht. Ich habe versucht mit meinen Minimalkenntnissen aus zwei Scripte eins zu basteln. Funktioniert natürlich nicht.
Das Problem sind diese Zeilen:
foreach($item in (dir $LocalPath "*.txt")){
"Uploading $item..."
$uri = New-Object System.Uri($ComputerName+$SftpPath+$item.Name)
$webclient.UploadFile($uri, $item.FullName)
}
Die habe ich aus dem alten Script entnommen. Da ich keine Ahnung von PS habe, ist es für mich schwierig das zum Laufen zu bekommen. Vielleicht wäre einer/eine so nett und könnte das mit wenig Zeilen zum Laufen zu bringen.
Die Anwahl zum Server funktioniert soweit.
Hier das ganze Script, was aber nicht funktioniert.
# Hier den FTP-Host eintragen
$ComputerName = "server-ftp.de"
# Import Modul Posh-SSH
Import-Module Posh-SSH
# Define UserName
$username = "ftp_user"
# Hier das verschlüsselte Passwort eintragen
$encrypted = "4312d42412f54"
$password = ConvertTo-SecureString -String $encrypted
#Set Credetials to connect to server
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $username, $password
# Hier die Verzeichnisse Lokal und FTP-Server eintragen
$LocalPath = "C:\UPLOAD\"
$SftpPath = '/www/'
# Establish the SFTP connection
$SFTPSession = New-SFTPSession -ComputerName $ComputerName -Credential $Credential -AcceptKey
# lists directory files into variable
$FilePath = Get-SFTPChildItem -sessionID $SFTPSession.SessionID -path $SftpPath
foreach($item in (dir $LocalPath "*.txt")){
"Uploading $item..."
$uri = New-Object System.Uri($ComputerName+$SftpPath+$item.Name)
$webclient.UploadFile($uri, $item.FullName)
}
#Terminates the SFTP session on the server
Remove-SFTPSession -SessionId $SFTPSession.SessionID
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6606979029
Url: https://administrator.de/forum/sftp-upload-per-posh-ssh-fehler-6606979029.html
Ausgedruckt am: 22.12.2024 um 19:12 Uhr
4 Kommentare
Neuester Kommentar
foreach($item in Get-ChildItem -LiteralPath $LocalPath -File -Filter *.txt){
"Uploading '$($item.Fullname)' ..."
Set-SFTPItem -sftpsession $sftpsession -Destination '/www' -Path $item.Fullname -Force
}
Gruß Katrin
Öhm den Part habe ich doch schon oben an dein Skript angepasst für alle Textdateien des Ordners ... 🤔