Что лучший способ состоит в том, чтобы автоматизировать безопасный FTP в PowerShell?

Самый простой способ добиться этого:

et.addTextChangedListener(new TextWatcher() {
    public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        String text = arg0.toString();
        if (text.contains(".") && text.substring(text.indexOf(".") + 1).length() > 2) {
            et.setText(text.substring(0, text.length() - 1));
            et.setSelection(et.getText().length());
        }
    }

    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {

    }

    public void afterTextChanged(Editable arg0) {
    }
});
26
задан Eric Ness 7 November 2008 в 00:29
поделиться

6 ответов

После некоторого экспериментирования я придумал этот способ автоматизировать безопасную загрузку FTP в PowerShell. Этот сценарий убегает , общественность тестирует FTP-сервер администрируемый Chilkat Software. Таким образом, можно скопировать и вставить этот код, и он будет работать без модификации.

$sourceuri = "ftp://ftp.secureftp-test.com/hamlet.zip"
$targetpath = "C:\hamlet.zip"
$username = "test"
$password = "test"

# Create a FTPWebRequest object to handle the connection to the ftp server
$ftprequest = [System.Net.FtpWebRequest]::create($sourceuri)

# set the request's network credentials for an authenticated connection
$ftprequest.Credentials =
    New-Object System.Net.NetworkCredential($username,$password)

$ftprequest.Method = [System.Net.WebRequestMethods+Ftp]::DownloadFile
$ftprequest.UseBinary = $true
$ftprequest.KeepAlive = $false

# send the ftp request to the server
$ftpresponse = $ftprequest.GetResponse()

# get a download stream from the server response
$responsestream = $ftpresponse.GetResponseStream()

# create the target file on the local system and the download buffer
$targetfile = New-Object IO.FileStream ($targetpath,[IO.FileMode]::Create)
[byte[]]$readbuffer = New-Object byte[] 1024

# loop through the download stream and send the data to the target file
do{
    $readlength = $responsestream.Read($readbuffer,0,1024)
    $targetfile.Write($readbuffer,0,$readlength)
}
while ($readlength -ne 0)

$targetfile.close()

я нашел большую полезную информацию в этих ссылках

, Если Вы хотите использовать соединение SSL, необходимо добавить строку

$ftprequest.EnableSsl = $true

к сценарию перед вызовом GetResponse (). Иногда Вы, возможно, должны иметь дело с сертификатом безопасности сервера, который истекает (как, я, к сожалению, делаю). Существует страница в Репозиторий кода PowerShell , который имеет фрагмент кода, чтобы сделать это. Первые 28 строк являются самыми важными для целей загрузить файл.

24
ответ дан Eric Ness 25 September 2019 в 07:35
поделиться

Взято из здесь

$source = "ftp://ftp.microsoft.com/ResKit/win2000/dureg.zip"
$target = "c:\temp\dureg.zip"
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($source, $target)

Работает для меня

7
ответ дан PabloG 25 September 2019 в 07:35
поделиться

Насколько PowerShell идет,/n программное обеспечение , пакет NetCmdlets включает FTP cmdlets (включая поддержку обоих безопасных типов FTP), что Вы могли использовать довольно легко для этого.

4
ответ дан tomasr 25 September 2019 в 07:35
поделиться

Это не столь просто, как мне жаль, что это не было. Существует три опции, о которых я знаю.

1).Net - можно использовать.Net платформу, чтобы сделать это в PS, но это включает управление неструктурированным сокетом, которое я не хотел бы делать в сценарии. Если бы я шел этим путем, то я обернул бы весь спам ftp в DLL в C#, тогда используют тот DLL от powershell.

2) Управление файлом - Если Вы знаете шаблон названия файла, который необходимо получить каждый день тогда, Вы могли просто открыть свой сценарий ftp с PS и изменить имя файла в сценарии. Тогда выполните сценарий.

3) текст Канала к FTP - последняя опция состоит в том, чтобы использовать powershell для передачи по каналу информации в и из сеанса FTP. См. здесь .

1
ответ дан EBGreen 25 September 2019 в 07:35
поделиться

Я успешно пользовался библиотекой.NET Проекта Инди, чтобы сделать FTP. И... тьфу, похож на размещенную сборку.NET, больше не доступно.

0
ответ дан Peter Seale 25 September 2019 в 07:35
поделиться

$ realdate = (Get-Date) .ToString ("yyyyMMdd")

$ path = "D: \ samplefolderstructure \ filename" + $ realdate + ".msi"

футов в секунду -f $ path -s: D: \ FTP.txt

ftp.txt - это способ хранения всей информации о нашем соединении с ftp-сервером. ftps - это клиент, который мы используем, очевидно, поэтому, возможно, придется изменить несколько вещей. Но это должно помочь вам понять идею.

0
ответ дан Alex 25 September 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: