Я пытаюсь скопировать файл по сети с сервера Windows 2012r2 с PowerShell 5.0 на сервер 2008 R2 с PowerShell 2.0. Я пытаюсь сделать это с помощью команды Copy-Item. Сценарий, выполняющий команду:
$secPassword = ConvertTo-SecureString $password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($userName, $secPassword)
$sessionOptions = New-PSSessionOption -SkipCACheck -SkipCNCheck
$session = New-PSSession -Computername $computerName -SessionOption $sessionOptions -Credential $cred
Copy-Item -Path $source -Destination $destination -ToSession $session
При выполнении команды я получаю следующую ошибку:
Copy-Item: невозможно проиндексировать объект типа System.IO.FileInfo. В C: \ Users \ pmartin.CLUBSOFTINC \ Documents \ Repos \ Test \ PowerShell \ test.ps1: 21 символ: 1 + Copy-Item -Path $ source -Destination $ destination -ToSession $ session + ~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (0: Int32) [Copy-Item], RuntimeException + FullyQualifiedErrorId: CannotIndex
После некоторых исследовательская работа, похоже, это вызвано проблемой совместимости в PSv2, когда возвращение значения с индексом [0] из элемента, не являющегося массивом, не возвращает элемент (по сравнению с PSv5, который возвращал бы элемент).
Есть ли способ решения этой проблемы? Если да, как я могу реализовать это в моем скрипте?