Security/New-NAVContainerSuperUserOnDockerHost.ps1

function New-NAVContainerSuperUserOnDockerHost {
    param(
        [Parameter(Mandatory=$true)]
        [String] $DockerHost,
        [Parameter(Mandatory=$false)]
        [System.Management.Automation.PSCredential] $DockerHostCredentials,
        [Parameter(Mandatory = $false)]
        [Switch] $UseSSL,
        [Parameter(Mandatory=$true)]
        [String] $ContainerName,
        [Parameter(Mandatory=$true)]
        [String] $Username,
        [Parameter(Mandatory=$true)]
        [SecureString] $Password,
        [Parameter(Mandatory=$false)]
        [switch] $CreateWebServicesKey        
    )
    
    Invoke-Command -ComputerName $DockerHost -UseSSL:$UseSSL -Credential $DockerHostCredentials -ScriptBlock {
        param(
            $ContainerName,$CreateWebServicesKey,$Username,[SecureString] $Password
        )
    
        $Session = Get-NavContainerSession -containerName $ContainerName
        Invoke-Command -Session $Session -ScriptBlock {
            param(
                $CreateWebServicesKey,$Username,[SecureString] $Password
            )
            
            New-NAVServerUser `
                -ServerInstance NAV `
                -UserName $username  `
                -Password (ConvertTo-SecureString $Password -Force) `
                -CreateWebServicesKey:$CreateWebServicesKey
        
            New-NAVServerUserPermissionSet `
                -Scope System `
                -ServerInstance NAV `
                -PermissionSetId SUPER `
                -UserName $username 
            
            Write-Host "UID: $username successfully created!"
            
            if ($CreateWebServicesKey) {
                write-Host " WS-Key: $((Get-NAVServerUser -ServerInstance NAV | where username -like $username).WebServicesKey)"
            }
                
        }  -ArgumentList $CreateWebServicesKey,$Username,$Password
        
    
    } -ArgumentList $ContainerName,$CreateWebServicesKey,$Username,$Password
}