Как скопировать файлы и дерево папок на удаленный компьютер? - PullRequest
5 голосов
/ 27 августа 2009

У меня есть две машины: Сервер A и Сервер B, и я хочу скопировать все файлы и дерево папок с Сервера A на Сервер B с помощью PowerShell.

Я пробовал указанную ниже команду, но она копирует только файлы в папке и не создает дерево папок:

Copy-Item E:\TestSource\* //TestDestination/ -recurse -force

Ответы [ 4 ]

4 голосов
/ 28 августа 2013

Если у вас есть исходная и целевая папки, вы можете использовать следующую команду:

robocopy $source $dest /e

Если вам нужна дополнительная информация о команде, вы можете использовать robocopy /? или посетить документацию Robocopy на Windows Server Technet, Robocopy .

1 голос
/ 15 декабря 2009
Get-ChildItem \\server_a\c$ -Recurse | % {
   $dest = Join-Path -Path \\server_b\c$ -ChildPath (Split-Path $_.FullName -NoQualifier)

   if (!(Test-Path $dest))
   {
      mkdir $dest
   }

   Copy-Item $_.FullName -Destination $dest -Force
}

Использование Split-Path с параметром -NoQualifier вернет исходный путь без информации о диске. Соедините это с префиксом пути назначения и используйте результат, чтобы создать каталог назначения (если он не существует) и выполнить копирование.

0 голосов
/ 01 июля 2013

Не используйте командлет PowerShell Copy-Item. Найдите сторонний инструмент для зеркалирования / синхронизации. Мы используем RoboCopy .

0 голосов
/ 27 августа 2009

Я предполагаю, что у вас есть права на 2 сервера

Get-ChildItem "\ SERVER_A \ C $" -Recurse | Copy-Item -Destination "\ SERVER_B \ C $"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...