Назад | Перейти на главную страницу

Copy-Item -ToSession из Powershell версии 5.0 в версию 2.0

Я пытаюсь скопировать файл по сети с сервера 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, который возвращал бы элемент).

Есть ли способ решения этой проблемы? Если да, как я могу реализовать это в моем скрипте?