
Я снова здесь с еще одним вопросом.
Как указаноздесь, Я успешно подключил два сервера, чтобы скопировать много файлов. Но копирование вообще не работает. Возвращает много ошибок для файлов и папок, которые уже существуют на целевом сервере.
Я создал PSSession, как описано по ссылке выше. Я могу успешно просматривать файлы с исходного сервера с помощью Invoke-Command -ScriptBlock { Get-ChildItem -Path "d:\" } -Session $source_server
. Затем начал копирование с помощью:
copy-item -path "d:\folder_on_source_server\*" -destination "d:\folder_on_destination_server" -FromSession $source_server -recurse -exclude "*dfsrprivate*",".dropbox.cache"
Имена исходной и целевой папок одинаковы. На самом деле, оба сервера имеют одинаковую структуру папок. Но, как уже было сказано, я получил много ошибок в файлах и папках, которые уже присутствуют в месте назначения. И я имею в виду МНОГО. Копировались только новые файлы, обновленные файлы — нет. Я знаю, что опция -force сработает, но она скопирует все снова.
Моя цель сейчас — скопировать все новоеИобновил файлы из источника, но у copy-item такой функции нет. Поэтому я попробовал использовать robocopy. Проблема в том, что я не знаю, как указать robocopy использовать папку на удаленном сервере в качестве источника. Я знаю, что robocopy может использовать пути UNC, но у меня нет идей, как разобрать удаленный путь UNC к нему. Что-то вроде robocopy remote_source_folder local_destination_folder /mir
и настройки исключений.
Я пытался создать PSDrive, но он создается только на исходном сервере. Локальный robocopy его не видит: Invoke-Command -session $vms -ScriptBlock { New-PSDrive -name "S" -PSProvider "FileSystem" -Root "\remote_server_ip\d$" }. Если я уберу -session, диск будет создан где-то, где я не знаю.
Я также попробовал некоторые другие команды, такие как net use, создал переменную с помощью get-childitem в источнике и другие, все с invoke-command и без него, с -session и без него, но ни одна из них не сработала.
Итак, можете ли вы помочь мне получить эти файлы? Я думаю, это простая вещь, но я ее не вижу. Также, если вы можете указать мне способ начать pssession без необходимости вводить имя пользователя и пароль, было бы неплохо.
Спасибо за совет!