VMware Horizon Community
natixis_it
Enthusiast
Enthusiast
Jump to solution

VMware.Hv.EntityNotFound ErrorMessage : Could not find user or group in AD

Hi,

After upgrading to Horizon View 7.7, VMware.Hv.Helper module no longer works.  I'm able to successfully connect to the environment; however, when I run the following cmdlet it errors out:

PS C:\>  Connect-HVServer -Server $(hostname) -Domain example.com

PS C:\>  Get-HVMachine

Exception calling "QueryService_Query" with "2" argument(s): "ExceptionType : VMware.Hv.EntityNotFound

ErrorMessage : Could not find user or group in AD

Id : VMware.Hv.UserOrGroupId"

At C:\Program Files\WindowsPowerShell\Modules\VMware.Hv.Helper\VMware.HV.Helper.psm1:6759 char:5

+     $queryResults = $query_service_helper.QueryService_Query($service ...

+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException

    + FullyQualifiedErrorId : VimException

I followed Connect-HVServer Could not find user or group in AD but I guest it doesn't really pertain to my issue because I am able to connect using the module.

Thanks,

P

0 Kudos
1 Solution

Accepted Solutions
natixis_it
Enthusiast
Enthusiast
Jump to solution

There were users assigned to machines that were deleted from active directory before the upgrade.  That is why the module was prompting the error message "Could not find user or group in AD".  I created the following script that searched and unassigned deleted active directory users from their machine.  After the clean-up, the module works without an issue.

Import-Module ActiveDirectory

$server = '127.0.0.1'

$searhADSI = [adsisearcher]''

$searhADSI.SearchRoot = "LDAP://$server/dc=vdi,dc=vmware,dc=int"

$Pools = ([adsi]"LDAP://$server/OU=Server Groups,DC=vdi,DC=vmware,DC=int").psbase.Children

foreach ($Pool in $Pools) {

    foreach ($Desktop in ([adsi]$Pool).'pae-memberdn') {

        $Desktop = [adsi]"LDAP://$server/$Desktop"

        if ($Desktop.'pae-SIDString') {

            [array]$Desktops += $Desktop | select @{n='Sid';e={$_.'pae-SIDString'.value}},@{n='cn';e={$_.'cn'.value}}

        }

    }

}

$Desktops | % { $_.sid = (Get-ADUser $_.sid).name }

foreach ($obj in $Desktops | ? sid -like "s-*") {

    $searhADSI.Filter = "(&(cn=$($obj.cn)))"

    $vm = [adsi]$searhADSI.FindAll().path

    $vm.Properties['pae-SIDString'].clear()

    $vm.setinfo()

}

View solution in original post

0 Kudos
1 Reply
natixis_it
Enthusiast
Enthusiast
Jump to solution

There were users assigned to machines that were deleted from active directory before the upgrade.  That is why the module was prompting the error message "Could not find user or group in AD".  I created the following script that searched and unassigned deleted active directory users from their machine.  After the clean-up, the module works without an issue.

Import-Module ActiveDirectory

$server = '127.0.0.1'

$searhADSI = [adsisearcher]''

$searhADSI.SearchRoot = "LDAP://$server/dc=vdi,dc=vmware,dc=int"

$Pools = ([adsi]"LDAP://$server/OU=Server Groups,DC=vdi,DC=vmware,DC=int").psbase.Children

foreach ($Pool in $Pools) {

    foreach ($Desktop in ([adsi]$Pool).'pae-memberdn') {

        $Desktop = [adsi]"LDAP://$server/$Desktop"

        if ($Desktop.'pae-SIDString') {

            [array]$Desktops += $Desktop | select @{n='Sid';e={$_.'pae-SIDString'.value}},@{n='cn';e={$_.'cn'.value}}

        }

    }

}

$Desktops | % { $_.sid = (Get-ADUser $_.sid).name }

foreach ($obj in $Desktops | ? sid -like "s-*") {

    $searhADSI.Filter = "(&(cn=$($obj.cn)))"

    $vm = [adsi]$searhADSI.FindAll().path

    $vm.Properties['pae-SIDString'].clear()

    $vm.setinfo()

}

0 Kudos