Windows – In PowerShell how to copy files from a Remote PSsession to another Windows server


I am trying to copy a folder from one remote server to another inside a PSSession, it's giving errors like access is denied. I have admin privileges to both of the servers. If I try it without PSSession it works.

In remote serverA

PS C:\Users\Automation\Documents> [System.Net.Dns]::GetHostName()
PS C:\Users\Automation\Documents> Copy-Item -Path .\abc.csv -Destination "\\jump\c$"
PS C:\Users\Automation\Documents>

In remote serverB

    PS C:\Users\Automation\Documents\sample\SQL Final Scripts> Copy-Item -Path ".\SQL_queries.csv" -Destination "\\sql\c$\"
    PS C:\Users\Automation\Documents\sample\SQL Final Scripts> Enter-PSSession -ComputerName sql  -Credential "automation@lab"

    [sql]: PS C:\Users\Automation\Documents> Copy-Item -Path ".\SQL_queries.csv" -Destination "\\jump\c$\"

Copy-Item : Access to the path '\\jump\c$\' is denied.
        + CategoryInfo          : PermissionDenied: (C:\Users\Automa...SQL_queries.csv:FileInfo) [Copy-Item], Unauthorized
        + FullyQualifiedErrorId : CopyFileInfoItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.CopyItemCommand

    [sql]: PS C:\Users\Automation\Documents>

Best Solution

You are facing the "Double Hop" problem. Run this on the SQL computer

Enable-WSManCredSSP -Role Server 

and run this on Server B

Enable-WSManCred -Role Client -DelegateComputer * 

then when you enter the remote session do

Enter-PSSession -ComputerName sql -Authentication Credssp -Credential (Get-Credential)

Hope this helps.

If you sneezed during reading this answer, Bless your face.