Public/Get-AGMLibHostList.ps1
Function Get-AGMLibHostList { <# .SYNOPSIS Displays the Host IDs for nominated host types. .EXAMPLE Get-AGMLibHostList You will be prompted for information .DESCRIPTION A function to find Host IDs #> if ( (!($AGMSESSIONID)) -or (!($AGMIP)) ) { Get-AGMErrorMessage -messagetoprint "Not logged in or session expired. Please login using Connect-AGM" return } $sessiontest = Get-AGMVersion if ($sessiontest.errormessage) { Get-AGMErrorMessage -messagetoprint "AGM session has expired. Please login again using Connect-AGM" return } $appliancegrab = Get-AGMAppliance | select-object name,clusterid | sort-object name if ($appliancegrab.count -eq 0) { Get-AGMErrorMessage -messagetoprint "Failed to find any appliances to work with" return } if ($appliancegrab.name.count -eq 1) { $mountapplianceid = $appliancegrab.clusterid } else { Clear-Host write-host "Appliance selection menu - which Appliance will run your mounts" Write-host "" $i = 1 foreach ($appliance in $appliancegrab) { Write-Host -Object "$i`: $($appliance.name)" $i++ } While ($true) { Write-host "" $listmax = $appliancegrab.name.count [int]$appselection = Read-Host "Please select an Appliance to mount from (1-$listmax)" if ($appselection -lt 1 -or $appselection -gt $listmax) { Write-Host -Object "Invalid selection. Please enter a number in range [1-$($listmax)]" } else { break } } $mountapplianceid = $appliancegrab.clusterid[($appselection - 1)] } Clear-Host Write-Host "Are the scanning hosts Linux or Windows?" Write-host "" Write-Host "1`: Linux" Write-Host "2`: Windows" Write-Host "3`: Exit" $userchoice3 = Read-Host "Please select from this list (1-3)" if ($userchoice3 -eq "" -or $userchoice3 -eq 3) { return } if ($userchoice3 -eq 1) { $ostype = "Linux" $hostgrab = Get-AGMHost -filtervalue "sourcecluster=$mountapplianceid&ostype=$ostype" -sort "name:asc" } if ($userchoice3 -eq 2) { $ostype = "Win32" $hostgrab = Get-AGMHost -filtervalue "sourcecluster=$mountapplianceid&ostype=$ostype" -sort "name:asc" } if ($hostgrab.id.count -eq 0) { Get-AGMErrorMessage -messagetoprint "No hosts were found with selected ostype $ostype" return } Clear-Host Write-Host "Target host selection menu" $hostgrab | Select-Object id,hostname,ostype,@{N='ApplianceName'; E={$_.appliance.name}} | Format-Table } |