Команда Powershell для FTP файла с сервера для выбора компьютеров в сети

TL; DR: Мне нужно переместить большой файл с сервера на рабочий стол нескольких подключенных к нему компьютеров SELECT.

Топография сети:

  • 1 сервер
  • 5–20 подключенных компьютеров

Эта топография довольно стандартна для всех удаленных сетей, с которыми я работаю. В некоторых случаях мне приходится размещать файлы на каждой машине в сети; иногда только на нескольких отдельных машинах, используемых администраторами сайта.

Я постоянно храню «главную копию» файла на сервере, и в настоящее время использую RDP на каждой машине, на которой он мне нужен (как только я разрешу IP, чтобы убедиться, что это не принтеры / планшеты / телефоны и т. Д. ...) и скопируйте нужный мне файл с сервера на подключенную машину (каталог стандартный). После исследования Я думаю, что сценарий PS, вероятно, подойдет для того, что мне нужно, но я знаю только достаточно, чтобы быть опасным.

Я использую следующее, чтобы преобразовать IP-адреса в имена хостов, чтобы я мог определить, на каких машинах мне нужно его установить:

@echo off
setlocal EnableDelayedExpansion
set "xNext="
set "xComputer="
for /f %%A in ('net view /all') do (
set "xComputer=%%~A"
if "!xComputer:~0,2!"=="\\" for /f "tokens=2,* delims=. " %%X in ('nslookup %%A') do (
    if "!xNext!"=="1" (
        echo.!xComputer! = %%X.%%Y
        set "xNext=0"
    )
    if "!xComputer:~2!"=="%%~X" set "xNext=1"
)
)
endlocal
pause

Мне нужна возможность использовать выходные данные этого кода для создания списка IP-адресов, а затем FTP файла для IP-адресов в общий каталог C: / Folder . Я мог бы создать ComputerList.txt с IP-адресами и использовать его, но я не совсем уверен, как его интегрировать.

0
задан 15 August 2018 в 17:49
2 ответа

Если вам просто нужно скопировать файл локально, вам не нужен FTP, вы можете использовать команду копирования (copy, xcopy, robocopy). Создайте массив powershell из своих объектов, затем используйте командлет foreach и используйте robocopy для копирования файла на каждую из рабочих станций. Примерно такая строка:

Get-Content c:\machines_List.txt | Foreach-Object {robocopy c:\source \\$_\c$\folder filename.exe"}
0
ответ дан 4 December 2019 в 15:52

К счастью, вам не нужно воссоздавать колесо здесь. Используйте WinSCP. Вот ссылка на документацию:

WinSCP - Использование из PowerShell

Если вам понадобится помощь после просмотра этой документации, дайте мне знать, оставив комментарий.

1
ответ дан 4 December 2019 в 15:52

Теги

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