Как рекурсивно скопировать по сети с одного хоста на другой (винда-винда)?
как рекурсивно скопировать по сети с одного хоста на другой (винда-винда)?
через powershell (Enable-PSRemoting, New-PSSession и т.д.), xcopy (умеет?)
или как ?
хочется обойтись штатными средствами
Можете воспользоваться Powershell
Copy-Item -Path "\\share01" -Recurse -Destination "\\share02"
Если это локальный ПК без расшаренных ресурсов можете подключиться к диску напрямую используя в качестве пути \\PCName\C$
Для такого доступа требуются права администратора на удаленном ПК.
компьютеры в домене.
как побороть в таком случае доверенные адреса без явного указания своих параметров учётной записи (насколько известно, для компьютеров в домене используется автоопределение учётной записи и указывать логин/пароль не обязательно. авторизация будет от имени запустившего сей запрос)
Enter-PSSession
- получаю ответ от winrm
в TrustedHosts вносится только 1 ip адрес. другой им заменяется .
EmachinesDIMA, Подключение через Enter-PSSession для этого не требуются, достаточно запустить команду копирования от доменной учетной записи имеющей права администратора на удаленных хостах.
Для копирования не требуется доступ к машине по winrm или через powershell, нужен только сетевой доступ и доступ на фаерволах к административным шарам на локальных пк.
Если я что-то не так понял и вы хотите организовать какой-то другой режим подключения/копирования опишите подробнее что вы хотите. Или вы имеете доступ через Enter-PSSession но не имеете прав локальных администраторов и хотите произвести копирование?
Я являюсь администратором на обоих удалённых хостах.
с третьего хоста (свой рабочий пк) хочу запустить копирование данных с одного удалённого хоста на другой.
Сторонними утилитами вроде robocopy пользоваться не хочу принципиально.
В Xcopy заметил только копирование локально на одном хосте.
1. Попробуйте подключиться к каждому из ПК напрямую используя системные шары \\PCName\C$
Если запросит логин/пароль введите учетные данные которые являются админскими для каждого из ПК
Если по шаре вы успешно подключаетесь к каждой из шар переходите к пункту 2, если нет надо разбираться что и где блокирует - фаерволы/групповые политики и т.д.
2. На своем ПК запускаете Powershell от учетной записи которая имеет права администратора на удаленных ПК и выполняете команду Copy-Item -Path "\\PCName01\C$" -Recurse -Destination "\\PCName01\C$" без указания учетных данных, заменив имена PC на ваши, будут использованы учетные данные вашей сессии Powershell. Вы так же можете принудительно авторизоваться для подключения к шарам под любой другой учетной записью добавив к команде выше ключ -Credentional и указав Username под которым должна выполниться команда, в момент выполнения Powershell запросит ввести пароль для авторизации.
В случае если вы хотите создать повторяющуюся задачу вы можете создать соответствующую задачу в планировщике указав учетные данные из под которых будет выполняться скрипт, в этом случае ключ -Credentional не нужен.
При использовании командлета Copy-Item не происходит никакого подключения к удаленным сессиям, все копирование производится через расшаренные папки/системные шары либо локальные пути.
Евгений, подскажите, как Copy-Item будет выполнять копирование?
если мне необходимо скопировать сотни гигабайт - при завершении powershell сессии на своём компьютере процесс оборвётся. я правильно понимаю ?
для этого лучше использовать non-stop машину?
EmachinesDIMA, Все верно, при выключении окна Powershell на котором запущено копирование процесс прервется.
Единственным минусом такого копирования будет полное отсутствие какой-либо визуализации процесса. Для устранения этого недостатка можно накидать простенький скрипт, который будет показывать какой элемент копируется в данный момент. Либо можете запустить копирование на одной из машин с/на которую будет производиться копирование.