The script mounts the drive correctly, but the drive is not persisted after rebooting the machine:
function RemapDrive {
    param(      
        $DriveLetter,
        $FullPath,
        $Credential     
    )
    
    Write-Host "Trying to remove $DriveLetter in case it already exists ..."    
    # $DriveLetter must be concatenated with ":" for the command to work
    net use "${DriveLetter}:" /del
    
    ## $DriveLetter cannot contain ":"
    $psDrive = New-PSDrive -Name "$DriveLetter" -PSProvider "FileSystem" -Root "$FullPath" -Credential $Credential -Scope "Global" -Persist
    
    Write-Host "$DriveLetter was successfully added !"  
}
function BuildCredential {
    param (
        $Username,
        $Password
    )
    $pass = ConvertTo-SecureString $Password -AsPlainText -Force
    $credential = New-Object System.Management.Automation.PSCredential ($Username, $pass)
    return $credential
}
$credential = (BuildCredential -Username "xxxxxx" -Password "yyyyyy")[-1]
RemapDrive -DriveLetter "X" -FullPath "\\my-server\x" -Credential $credential
What I have found:
“When you scope the command locally, that is, without dot-sourcing, the Persist parameter does not persist the creation of a PSDrive beyond the scope in which you run the command. If you run New-PSDrive inside a script, and you want the new drive to persist indefinitely, you must dot-source the script. For best results, to force a new drive to persist, specify Global as the value of the Scope parameter in addition to adding Persist to your command.”
I have tried executing the script with ". .\my-script.ps1" (to dot-source the script?), but the result is the same.
Playing around with "net use" and the registry to try to add the network drive has lead me to a cul-de-sac as well.
Specs:
Windows 10 Home
Powershell version:
Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      18362  1171