TL; DR: Мне нужно переместить большой файл с сервера на рабочий стол нескольких подключенных к нему компьютеров SELECT.
Топография сети:
Эта топография довольно стандартна для всех удаленных сетей, с которыми я работаю. В некоторых случаях мне приходится размещать файлы на каждой машине в сети; иногда только на нескольких отдельных машинах, используемых администраторами сайта.
Я постоянно храню «главную копию» файла на сервере, и в настоящее время использую 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-адресами и использовать его, но я не совсем уверен, как его интегрировать.
Если вам просто нужно скопировать файл локально, вам не нужен FTP, вы можете использовать команду копирования (copy, xcopy, robocopy). Создайте массив powershell из своих объектов, затем используйте командлет foreach и используйте robocopy для копирования файла на каждую из рабочих станций. Примерно такая строка:
Get-Content c:\machines_List.txt | Foreach-Object {robocopy c:\source \\$_\c$\folder filename.exe"}
К счастью, вам не нужно воссоздавать колесо здесь. Используйте WinSCP. Вот ссылка на документацию:
WinSCP - Использование из PowerShell
Если вам понадобится помощь после просмотра этой документации, дайте мне знать, оставив комментарий.