Misc/Copy-FileFromNavContainer.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function Copy-FileFromNavContainer {

    Param(
        [Parameter(Mandatory=$true)]
        [string]$containerName,
        [Parameter(Mandatory=$true)]
        [string]$containerPath,
        [Parameter(Mandatory=$false)]
        [string]$localPath = $containerPath
    )

    Process {
        if (!(Test-NavContainer -containerName $containerName)) {
            throw "Container $containerName does not exist"
        }
        Log "Copy from container $containerName ($containerPath) to $localPath"
        $id = Get-NavContainerId -containerName $containerName 

        $session = New-PSSession -ContainerId $id -RunAsAdministrator -ErrorAction Ignore
        if ($session) {
            Copy-Item -Path $containerPath -Destination $localPath -FromSession $session
            Remove-PSSession -Session $session
        } else {
            docker cp ${id}:$containerPath $localPath
        }
    }
}
Export-ModuleMember Copy-FileFromNavContainer