Updated Find-HVMachine

Updated Find-HVMachine to use the iterative query service, QueryService_Create() rather than the quick QueryService_Query()
This commit is contained in:
mtelvers
2017-10-16 19:11:49 +01:00
parent 754e9300eb
commit ba61e6bb0f

View File

@@ -6794,25 +6794,35 @@ function Find-HVMachine {
$andFilter.Filters = $filterset $andFilter.Filters = $filterset
$query.Filter = $andFilter $query.Filter = $andFilter
} }
$queryResults = $query_service_helper.QueryService_Query($services,$query) $machineList = @()
$machineList = $queryResults.results $queryResults = $query_service_helper.QueryService_Create($services, $query)
do {
if ($machineList.length -ne 0) { $queryResults = $query_service_helper.QueryService_GetNext($services, $queryResults.id) }
$machineList += $queryResults.results
} while ($queryResults.remainingCount -gt 0)
$query_service_helper.QueryService_Delete($services, $queryResults.id)
} }
if ($wildcard -or [string]::IsNullOrEmpty($machineList)) { if ($wildcard -or [string]::IsNullOrEmpty($machineList)) {
$query.Filter = $null $query.Filter = $null
$queryResults = $query_service_helper.QueryService_Query($services,$query) $machineList = @()
$strFilterSet = @() $queryResults = $query_service_helper.QueryService_Create($services,$query)
foreach ($setting in $machineSelectors.Keys) { do {
if ($null -ne $params[$setting]) { if ($machineList.length -ne 0) { $queryResults = $query_service_helper.QueryService_GetNext($services, $queryResults.id) }
if ($wildcard -and (($setting -eq 'MachineName') -or ($setting -eq 'DnsName')) ) { $strFilterSet = @()
$strFilterSet += '($_.' + $machineSelectors[$setting] + ' -like "' + $params[$setting] + '")' foreach ($setting in $machineSelectors.Keys) {
} else { if ($null -ne $params[$setting]) {
$strFilterSet += '($_.' + $machineSelectors[$setting] + ' -eq "' + $params[$setting] + '")' if ($wildcard -and (($setting -eq 'MachineName') -or ($setting -eq 'DnsName')) ) {
$strFilterSet += '($_.' + $machineSelectors[$setting] + ' -like "' + $params[$setting] + '")'
} else {
$strFilterSet += '($_.' + $machineSelectors[$setting] + ' -eq "' + $params[$setting] + '")'
}
} }
} }
} $whereClause = [string]::Join(' -and ', $strFilterSet)
$whereClause = [string]::Join(' -and ', $strFilterSet) $scriptBlock = [Scriptblock]::Create($whereClause)
$scriptBlock = [Scriptblock]::Create($whereClause) $machineList += $queryResults.results | where $scriptBlock
$machineList = $queryResults.results | where $scriptBlock } while ($queryResults.remainingCount -gt 0)
$query_service_helper.QueryService_Delete($services, $queryResults.id)
} }
return $machineList return $machineList
} }