50 lines
1.7 KiB
PowerShell
50 lines
1.7 KiB
PowerShell
Function Get-HVDesktop {
|
|
<#
|
|
.SYNOPSIS
|
|
This cmdlet retrieves the virtual desktops on a horizon view Server.
|
|
.DESCRIPTION
|
|
This cmdlet retrieves the virtual desktops on a horizon view Server.
|
|
.NOTES
|
|
Author: Alan Renouf, @alanrenouf,virtu-al.net
|
|
.PARAMETER State
|
|
Hash table containing states to filter on
|
|
.EXAMPLE
|
|
List All Desktops
|
|
Get-HVDesktop
|
|
|
|
.EXAMPLE
|
|
List All Problem Desktops
|
|
Get-HVDesktop -state @('PROVISIONING_ERROR',
|
|
'ERROR',
|
|
'AGENT_UNREACHABLE',
|
|
'AGENT_ERR_STARTUP_IN_PROGRESS',
|
|
'AGENT_ERR_DISABLED',
|
|
'AGENT_ERR_INVALID_IP',
|
|
'AGENT_ERR_NEED_REBOOT',
|
|
'AGENT_ERR_PROTOCOL_FAILURE',
|
|
'AGENT_ERR_DOMAIN_FAILURE',
|
|
'AGENT_CONFIG_ERROR',
|
|
'UNKNOWN')
|
|
#>
|
|
Param (
|
|
$State
|
|
)
|
|
|
|
$ViewAPI = $global:DefaultHVServers[0].ExtensionData
|
|
$query_service = New-Object "Vmware.Hv.QueryServiceService"
|
|
$query = New-Object "Vmware.Hv.QueryDefinition"
|
|
$query.queryEntityType = 'MachineSummaryView'
|
|
if ($State) {
|
|
[VMware.Hv.QueryFilter []] $filters = @()
|
|
foreach ($filterstate in $State) {
|
|
$filters += new-object VMware.Hv.QueryFilterEquals -property @{'memberName' = 'base.basicState'; 'value' = $filterstate}
|
|
}
|
|
$orFilter = new-object VMware.Hv.QueryFilterOr -property @{'filters' = $filters}
|
|
$query.Filter = $orFilter
|
|
}
|
|
$Desktops = $query_service.QueryService_Query($ViewAPI,$query)
|
|
$Desktops.Results.Base
|
|
}
|
|
|
|
|