Нужна помощь в копировании Powershell с сетевых дисков - программирование
Подтвердить что ты не робот

Нужна помощь в копировании Powershell с сетевых дисков

Я пытаюсь использовать Copy-Item с удаленной машины на другой удаленный компьютер с помощью команды:

Copy-Item -Path "\\machine1\abc\123\log 1.zip" -Destination "\\machine2\\c$\Logs\"

Я постоянно получаю сообщение об ошибке "Cannot find Path "\\machine1\abc\123\log 1.zip"

Я могу получить доступ к этому пути и скопировать вручную оттуда.

Я открываю PowerCLI в качестве администратора и запускаю этот script... Я абсолютно застрял здесь и не уверен, как его разрешить.

4b9b3361

Ответ 1

Это похоже на работу с PowerShell v3. У меня нет v2 для тестирования, но есть два варианта, о которых я знаю, и которые должны работать. Во-первых, вы можете сопоставить PSDrives:

New-PSDrive -Name source -PSProvider FileSystem -Root \\machine1\abc\123 | Out-Null
New-PSDrive -Name target -PSProvider FileSystem -Root \\machine2\c$\Logs | Out-Null
Copy-Item -Path source:\log_1.zip -Destination target:
Remove-PSDrive source
Remove-PSDrive target

Если это то, что вы собираетесь делать много, вы можете даже обернуть это в функцию:

Function Copy-ItemUNC($SourcePath, $TargetPath, $FileName)
{
   New-PSDrive -Name source -PSProvider FileSystem -Root $SourcePath | Out-Null
   New-PSDrive -Name target -PSProvider FileSystem -Root $TargetPath | Out-Null
   Copy-Item -Path source:\$FileName -Destination target:
   Remove-PSDrive source
   Remove-PSDrive target
}

В качестве альтернативы вы можете явно указать поставщика с каждым путем:

Copy-Item -Path "Microsoft.PowerShell.Core\FileSystem::\\machine1\abc\123\log 1.zip" -Destination "Microsoft.PowerShell.Core\FileSystem::\\machine2\\c$\Logs\"

Ответ 2

это работает весь день для меня:

$strLFpath = "\\compname\e$\folder"
$strLFpath2 = "\\Remotecomputer\networkshare\remotefolder"  #this is a second option that also will work
$StrRLPath = "E:\localfolder"  
Copy-Item -Path "$StrRLPath\*" -Destination "$strLFpath" -Recurse -force -Verbose

вещи для просмотра: Элемент Copy-item определяет объект LAST как объект. для копирования содержимого папки, к которой вам НЕОБХОДИМО:\*

Если вы копируете папку самостоятельно в новое место, вам не нужно объявлять содержимое.