Я реализовал PS-скрипт, который одновременно развертывает код на нескольких серверах. Здесь мне нужно скопировать некоторый исходный файл с одного сервера на другой. Смотрите код ниже:Copy-File в scriptblock не может найти путь
for ($i=1; $i -le 5; $i++) {
$serverName="iwflO" + $i
$sourceFile="\\iwdflO1\C$\Deploy\bin"
$destination="\\$serverName\C$\Program Files (X86)\Shian\MyService\bin\"
$Myblock = {
Param{$sourceFile,$destination)
Copy-Item -Force -Recurse $sourceFile -Destination $destination
}
$result = Invoke-Command -ComputerName $ServerName -Credential "shian" -ScriptBlock $Myblock -ArgumentList $sourceFile,$destination;
$result;
}
cd c:\
Это работает отлично для iwflO1, который является корневым сервером, откуда я бегу сценарий, но и для других серверов это дает мне ошибку, как
Не удается найти путь " \ iwdflO1 \ C $ \ Deploy \ bin ", потому что он не существует.
Но если я вошел в систему на iwflO2 или на любом другом сервере и вручную ударил по пути его рабочего режима.
Это похоже на проблему с двумя прыжками. Ниже приведен блог [technet blog] (https://blogs.technet.microsoft.com/ashleymcglone/2016/08/30/powershell-remoting-kerberos-double-hop-solved-securely/) с некоторыми работами. – BenH
Взгляните на это и посмотрите, не похоже ли это http://stackoverflow.com/a/23625969/5233410 – Nkosi
как получилось, что проблема с двойным прыжком? –