Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Проблема с подключением к FTP через Powershell

Автор: tor311
Дата сообщения: 11.10.2010 12:55
Пытаюсь из Powershell получить список файлов с FTP. Все нормально работает, но только хочу я подключиться на FTP с другими учетными данными - выдает ошибку.
Цитата:
Исключение при вызове "GetResponse" с "0" аргументами: "Удаленный сервер возвратил ошибку: (503) Неправильная последовательность команд."

Привожу пример:

Код: $server = "site.ru" #FTP сайт
$foldername = "folder/" #удаленная папка
$url = "ftp://$server/$foldername" #url для закачки
#логины и пароли для подключения к FTP
$login = "login1", "login2"
$password = "pass1", "pass2"

[System.Net.FtpWebRequest]$WR = [System.Net.WebRequest]::Create("ftp://$server/$foldername")
$WR.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
$WR.Credentials = New-Object System.Net.NetworkCredential($login[0], $password[0])
$WRStream = $WR.GetResponse()
$responseStream = $WRStream.GetResponseStream()
$readStream = new-object System.IO.StreamReader($responseStream, [System.Text.Encoding]::Default)
$FileList = $readStream.ReadToEnd()
$FileList
$readStream.Close()
$responseStream.Close()
$WRStream.Close()

[System.Net.FtpWebRequest]$WR = [System.Net.WebRequest]::Create("ftp://$server/$foldername")
$WR.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
$WR.Credentials = New-Object System.Net.NetworkCredential($login[1], $password[1])
$WRStream = $WR.GetResponse()
$responseStream = $WRStream.GetResponseStream()
$readStream = new-object System.IO.StreamReader($responseStream, [System.Text.Encoding]::Default)
$FileList = $readStream.ReadToEnd()
$FileList
$readStream.Close()
$responseStream.Close()
$WRStream.Close()
Автор: vlary
Дата сообщения: 11.10.2010 15:42
tor311 Возможно, сначала нужно также закрыть $WR
Автор: tor311
Дата сообщения: 12.10.2010 05:34
Конечно же пробовал. Уже пересмотрел кучу инфы - нифига не нашел, вот и решил спросить на форуме. Методы WebRequest
Если же вызывать целиком скрипт и передавать в него параметр юзера для подключения - то все работает. getftp.ps1

Код: param ([int]$ftpuser = 0)
    # получаем список файлов с FTP
[System.Net.FtpWebRequest]$WR = [System.Net.WebRequest]::Create($url)
$WR.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
$WR.Proxy = $proxy
$WR.Credentials = New-Object System.Net.NetworkCredential
$WR.Credentials.set_UserName($login[$ftpuser])
$WR.Credentials.set_Password($password[$ftpuser])
$WRStream = $WR.GetResponse();
$responseStream = $WRStream.GetResponseStream()
$readStream = new-object System.IO.StreamReader($responseStream, [System.Text.Encoding]::Default)
$FileList = $readStream.ReadToEnd()
$arrRemoteFiles = $FileList.split("`n")
$arrRemoteFiles
$WRStream.Close()
$readStream.Close()
$responseStream.Close()

Страницы: 1

Предыдущая тема: Пакет silverlight.MSI


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.