Compare commits

..
6 Commits
3 changed files with 44575 additions and 10 deletions

No files matched your search

+21 -7
View File
@@ -1,6 +1,5 @@
if ($PSVersionTable.PSVersion.Major -lt 7) {
throw "This module requires PowerShell 7 or higher. You are currently running version $($PSVersionTable.PSVersion)."
}
$KISHorizon_version="2.0.0"
$KISHorizon_release="2026-10-02"
$global:request_header = @{
"accept"="*/*"
@@ -707,10 +706,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 +719,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 +737,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"" ]"
+44524
View File
File diff suppressed because it is too large. Load diff
+30 -3
View File
@@ -1,4 +1,4 @@
#requires -Modules posh-ssh
##requires -Modules posh-ssh
param (
[string]$vCenter = "",
@@ -9,8 +9,8 @@ param (
)
# Variables
$FileVersion = "1.0.1"
$FileDate = "2026-04-18"
$FileVersion = "1.1.0"
$FileDate = "2026-10-06"
# Display Script Banner
Write-Host "--------------------------------------------------" -ForegroundColor White
@@ -19,6 +19,31 @@ Write-Host "Version $($FileVersion) ($($FileDate))" -ForegroundColor Green
Write-Host "Written by Charlie Silverman" -ForegroundColor Green
Write-Host "--------------------------------------------------" -ForegroundColor White
function CheckModuleInstalled($moduleName, $command) {
Write-Host "Checking that package $moduleName is installed..." -NoNewLine
if (-not(get-command $command -erroraction silentlycontinue)) {
Write-Host " Missing" -ForegroundColor Red
if (-not (Get-Module -ListAvailable -Name $moduleName)) {
$response = ""
while (($response -ne "yes") -and ($response -ne "no")) {
$response = (Read-Host "$moduleName module not instaled. Install now? (yes/no)").ToLower()
}
if ($response -eq "no") {
Write-Host "Operation Cancelled." -ForegroundColor Yellow
exit
}
Write-Host "Installing PowerShell module $moduleName..." -NoNewLine
Install-Module -Name $moduleName -Scope CurrentUser -Force
Write-Host " Success" -ForegroundColor Green
}
Write-Host "Loading PowerShell module $moduleName..." -NoNewLine
Import-Module $moduleName
Write-Host " Success" -ForegroundColor Green
} else {
Write-Host " Found" -ForegroundColor Green
}
}
if ($Help) {
Write-Host
Write-Host "Purpose: Run a CLI command on all hosts in a cluster."
@@ -44,6 +69,8 @@ if ($Help) {
exit
}
CheckModuleInstalled -moduleName "posh-ssh" -command "New-SSHSession"
$quiet = Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
if ($vCenter -eq "") {