Estou tentando copiar um arquivo em uma rede de um servidor Windows 2012r2 executando o PowerShell 5.0 para um servidor 2008 r2 executando o PowerShell 2.0. Eu estou tentando fazer isso usando o comando Copy-Item. O script que executa o comando é:
$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
Ao executar o comando, recebo o seguinte erro:
Copy-Item : Unable to index into an object of type System.IO.FileInfo. At C:\Users\pmartin.CLUBSOFTINC\Documents\Repos\Test\PowerShell\test.ps1:21 char:1 + Copy-Item -Path $source -Destination $destination -ToSession $session + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (0:Int32) [Copy-Item], RuntimeException + FullyQualifiedErrorId : CannotIndex
Depois de fazer alguma pesquisa , parece que isso é causado por um problema de compatibilidade no PSv2 em que um valor é retornado index [0] de um elemento não-array não retorna o elemento (comparado ao PSv5 que retornaria o elemento).
Existe uma solução alternativa para esse problema? Se sim, como posso implementá-lo no meu script?
Tags windows powershell winrm