diff --git a/Horizon Tools/KISHorizon.psm1 b/Horizon Tools/KISHorizon.psm1 index 8a69dfb..0097fad 100644 --- a/Horizon Tools/KISHorizon.psm1 +++ b/Horizon Tools/KISHorizon.psm1 @@ -1,7 +1,3 @@ -if ($PSVersionTable.PSVersion.Major -lt 7) { - throw "This module requires PowerShell 7 or higher. You are currently running version $($PSVersionTable.PSVersion)." -} - $global:request_header = @{ "accept"="*/*" "content-type"="application/json" @@ -707,10 +703,12 @@ function Grant-HorizonDesktop { return [PSCustomObject]@{ Success = $false Message = "Neither UserName nor UserUPN were provided." + status_code = 9999 } } - $MachineID = (Get-HorizonMachine -Horizon $Horizon | where {$_.name -eq $MachineName}).id + $mymachine = Get-HorizonMachine -Horizon $Horizon | where {$_.name -eq $MachineName} + $MachineID = $mymachine.id if ($global:kishorizondebug) { Write-Host MachineID: $MachineID } @@ -718,13 +716,14 @@ function Grant-HorizonDesktop { return [PSCustomObject]@{ Success = $false Message = "Machine $MachneName does not exist in any desktop pool." + status_code = 9999 } } if ($UserName -ne "") { - $UserID = (Get-HorizonAdUser -Horizon $Horizon -UserName $UserName).id + $User = Get-HorizonAdUser -Horizon $Horizon -UserName $UserName } else { - $UserID = (Get-HorizonAdUser -Horizon $Horizon -UPN $UserUPN).id + $User = Get-HorizonAdUser -Horizon $Horizon -UPN $UserUPN } if ($global:kishorizondebug) { @@ -735,9 +734,21 @@ function Grant-HorizonDesktop { return [PSCustomObject]@{ Success = $false Message = User $UserUPN cannot be found. + status_code = 9999 } } - + + if ($mymachine.PSObject.Properties['user_ids']) { + if ($User.id -in $mymachine.user_ids) { + if ($User + return [PSCustomObject]@{ + Success = $false + Message = User $UserUPN already assigned to computer $MachineName. + status_code = 9999 + } + } + } + $desktopAssignURI = "https://$server/rest/inventory/v1/machines/$MachineID/action/assign-users" $body = "[ ""$UserID"" ]"