none
Get-FTPChildItem из PowerShell FTP Client Module от MichalGajda RRS feed

  • Вопрос

  • Добрый день!

    Столкнулся с проблемой. Есть FTP сервер, поднятый на IIS 7. Все настройки оставлены по умолчанию, кроме добавления на прием следующих команд MKD, PORT, RMD, RNFR, RNTO.

    При попытке выполнить

    $ftpServer = "ftp://10.10.15.15"
    $username = "User"
    $password = ConvertTo-SecureString 'Pa$$w0rd' -Force -AsPlainText
    $FtpPath = "/test/test/"
    $credentials = New-Object System.Management.Automation.PSCredential($username, $password)
    Set-FTPConnection -Credentials $credentials -Server $ftpServer -Session FTPSession -UsePassive -KeepAlive
    $Session = Get-FTPConnection -Session FTPSession
    Get-FTPChildItem -Session $Session -Path $FtpPath -Recurse

    не получаю списка файлов из папки test/test

    а получаю вот что

    Parent          : ftp://10.10.15.15/test/test

    FullName : ftp://10.10.15.15/test/test/

    ModifiedDate    :

    Size            : B

    Dir             : -

    OrgModifiedDate :

    Ln              :

    SizeInByte      :

    Right           :

    Group           :

    Name            :

    User            :

    При подключении через FileZilla каталог отображает содержимое нормальное.

    Вот вывод ошибки

    Exception calling "GetResponse" with "0" argument(s): "The remote server returned an error: (550) File unavailable (e.g., f
    ile not found, no access)."
    At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\PSFTP\Get-FTPItemSize.ps1:91 char:5
    +                 $Response = $Request.GetResponse()
    +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : WebException
     
    Get-Variable : Cannot find a variable with name 'FTPSession'.
    At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\PSFTP\Set-FTPConnection.ps1:104 char:9
    +                 if((Get-Variable -Scope Global -Name $Session -ErrorAction SilentlyContinue) ...
    +                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (FTPSession:String) [Get-Variable], ItemNotFoundException
        + FullyQualifiedErrorId : VariableNotFound,Microsoft.PowerShell.Commands.GetVariableCommand
     
    Может быть кто-то сталкивался с такой проблемой?



    • Изменено NewFeofan 25 ноября 2013 г. 13:21
    25 ноября 2013 г. 13:20

Все ответы

  • Если подключаться без параметра -UsePassive ?
    25 ноября 2013 г. 15:46
    Отвечающий
  • При подключении без параметра -UsePassive появляется следующая ошибка

    Exception calling "GetResponse" with "0" argument(s): "The remote server returned an error: (500) Syntax error, command unrecognized."
    At D:\Scripts\test.ps1:line:8 char:1
    + S <<<< et-FTPConnection -Credentials $credentials -Server $ftpServer -Session FTPSession -KeepAlive

    26 ноября 2013 г. 4:27
  • При подключении без параметра -UsePassive появляется следующая ошибка

    Exception calling "GetResponse" with "0" argument(s): "The remote server returned an error: (500) Syntax error, command unrecognized."
    At D:\Scripts\test.ps1:line:8 char:1
    + S <<<< et-FTPConnection -Credentials $credentials -Server $ftpServer -Session FTPSession -KeepAlive

    А если еще убрать -KeepAlive?
    26 ноября 2013 г. 4:56
    Отвечающий
  • Если убрать -KeepAlive, вот такая ошибка

    Exception calling "GetResponse" with "0" argument(s): "The remote server returned an error: (500) Syntax error, command unrecognized."
    At D:\Scripts\test.ps1:line:8 char:1
    + S <<<< et-FTPConnection -Credentials $credentials -Server $ftpServer -Session FTPSession
    


    26 ноября 2013 г. 5:12
  • Если убрать -KeepAlive, вот такая ошибка

    Exception calling "GetResponse" with "0" argument(s): "The remote server returned an error: (500) Syntax error, command unrecognized."
    At D:\Scripts\test.ps1:line:8 char:1
    + S <<<< et-FTPConnection -Credentials $credentials -Server $ftpServer -Session FTPSession



    Можно еще попробовать с параметром -UseBinary,как с -UsePassive -KeepAlive, так и без них.
    26 ноября 2013 г. 5:20
    Отвечающий
  • На всякий случай проверьте права на папки и файлы, чтобы были выставлены минимум как на картинке:

    Permissions

    26 ноября 2013 г. 7:33
  • Права необходимые есть, тем более, что при использовании клиента FileZilla все прекрасно работает.
    26 ноября 2013 г. 8:08
  • Если убрать -KeepAlive, вот такая ошибка

    Exception calling "GetResponse" with "0" argument(s): "The remote server returned an error: (500) Syntax error, command unrecognized."
    At D:\Scripts\test.ps1:line:8 char:1
    + S <<<< et-FTPConnection -Credentials $credentials -Server $ftpServer -Session FTPSession



    Можно еще попробовать с параметром -UseBinary,как с -UsePassive -KeepAlive, так и без них.

    Не помогло.
    26 ноября 2013 г. 9:51