Почему не powershell
Для того что бы написать скрипт для powershell потребуется небольшие косметические изменения.
Так для того что бы установить сервисы FTP надо выполнить:
Add-WindowsFeature Web-Ftp-Server,Web-Ftp-Service,Web-Ftp-ExtКоманда ftp
Для обмена файлами с FTP-сервером используется команда ftp, вот ее синтаксис:
FTP [-v] [-d] [-i] [-n] [-g] [-s:имя_файла] [-a] [-A] [-x:sendbuffer][-r:recvbuffer] [-b:asyncbuffers] [-w:windowsize] [узел]
| -v | Отключение вывода на экран ответов с удаленного сервера. |
| -n | Отключение автоматического входа при начальном подключении. |
| -i | Отключение интерактивных запросов при передаче нескольких файлов. |
| -d | Включение отладочного режима. |
| -g | Отключение глобализации имен файлов (см. команду GLOB). |
| -s:имя_файла | Задание текстового файла, содержащего команды FTP, которые будут выполняться автоматически при запуске FTP. |
| -a | Использование локального интерфейса для привязки соединения. |
| -A | Анонимный вход в службу. |
| -x:send sockbuf | Переопределение стандартного размера буфера SO_SNDBUF (8192). |
| -r:recv sockbuf | Переопределение стандартного размера буфера SO_RCVBUF (8192). |
| -b:async count | Переопределение стандартного размера счетчика async (3) |
| -w:windowsize | Переопределение стандартного размера буфера передачи (65535). |
| узел | Задание имени или адреса IP удаленного узла, к которому необходимо выполнить подключение. |
Как видно, здесь нет операторов для подключения к серверу и работы с файлами. Дело в том, что эта команда только запускает сеанс ftp:
Далее, работа с FTP-сервером происходит уже при помощи следующих операторов (пропустить) :
Пример bat-файла для загрузки файла на FTP
Теперь попробуем написать «батник» для загрузки файлов на FTP-сервер. Для этого создадим новый текстовый документ, и переименуем его в put_on_ftp.bat . Редактировать его можно обычным Блокнотом, но удобнее это делать с помощью бесплатной программы Notepad .
How to use passive ftp mode in windows command prompt?
The quote PASV command is not a command to the ftp.exe program, it is a command to the FTP server requesting a high order port for data transfer. A passive transfer is one in which the FTP data over these high order ports while control is maintained in the lower ports.
The windows ftp.exe program can be used to send the FTP server commands to make a passive data transfer between two FTP servers. A standard windows installation will not, and probably should not, have FTP server service running as an endpoint for passive transfers. So if passive transfers are needed with a standard windows box, a solution other than ftp.exe is necessary as FTPing to localhost as one of the connections won’t work in most windows environments.
You can effect a passive FTP transfer between two different hosts (but not two connections on the same host) as follows:
Open up two prompts, use one to ftp.exe connect to your source FTP server and one to ftp.exe connect to your destination FTP server.
Now establish a passive connection between the servers using the raw commands PASV and PORT. The quote PASV command will respond with an IP/port in ellipsis. Use that data for the quote PORT <data> command. Your passive link is now established assuming that firewalls haven’t blocked one or more of the four ports (2 for FTP control, 2 for FTP data)
Next start receive of data with the quote STOR <filename> command to the receiving FTP server then send the control command quote RETR <filename> to the source FTP server.
so for me:
client 1
> ftp.exe server1
ftp> quote PASV
227 Entering Passive Mode (10,0,3,1,54,161)
client 2
> ftp.exe server2
ftp> quote PORT 10,0,3,1,54,54,161
ftp> quote STOR myFile
client 1
ftp> quote RETR myFileCavet: I’m connecting to some old FTP servers YMMV
Загрузка файла на сервер
Чтобы загрузить файл, введите команду:
положить имя файла
Теперь вы можете просмотреть загруженный файл, введя URL, таким образом:
Сообщите мне, если у вас есть какие-либо вопросы.
Настраиваем ftp
Теперь IIS готов к настройке первого FTP. Что бы воспользоваться AppCmd надо использовать полный путь до команды: %windir%system32inetsrvappcmd.exe, или же прописать путь в переменную окружения PATH. Нам же будет достаточно запускать appcmd прямо из ее каталога:
Проверяем
Для проверки тоже воспользуемся командной строкой и командой ftp:
Устанавливаем ftp
Для начала нужно установит необходимые компоненты. Предположим что у нас уже есть предустановленный IIS и нам не хватает только служб FTP. Воспользуемся диспетчером пакетов pkgmgr:
pkgmgr /iu:IIS-FTPServer;IIS-FTPSvc;IIS-FTPExtensibility;




