Nov 06 2020 10:52 AM
I want to use Add-RdsAccount in a function that's called by other scripts. But for the life of me, I cannot make work. The "Add-RdsAccount" call works and successfully authenticates, but *only* for the local scope. I cannot get that authentication to persist within a script or globally. Every single time I want to call a new function to perform some task with WVD, I have to call "Add-RdsAccount" directly from that function.
I've never had this problem before. I can authenticate to Azure, for example, and have that authentication persist script-wide or globally. There's something peculiar about Micorsoft.RDInfra.Powershell that doesn't allow "Add-RdsAccount" to persist outside a local scope.
Has anyone else come across this and found a solution?
Mar 11 2021 12:11 PM
I was able to get the Add-RdsAccount command to work inside a class method (and the same should work inside a function) like this:
Class RdsClass {
[void] RdsConnect ([string]$DeploymentUrl, [PSCredential]$AzureCredential) {
Add-RdsAccount -DeploymentUrl $DeploymentUrl -Credential $AzureCredential
$Global:RdMgmtContext = (Get-Variable -Name RdMgmtContext).Value
$Global:AdalContext = (Get-Variable -Name AdalContext).Value
}
}
Then I am able to use:
[RdsClass]::New().RdsConnect($MyDeploymentUrl, $MyAzureCredentials)