Come posso forzare Powershell a restituire un array quando una chiamata restituisce solo un object?

Sto usando Powershell per configurare i binding IIS su un server web, e avendo un problema con il seguente codice:

$serverIps = gwmi Win32_NetworkAdapterConfiguration | Where { $_.IPAddress } | Select -Expand IPAddress | Where { $_ -like '*.*.*.*' } | Sort if ($serverIps.length -le 1) { Write-Host "You need at least 2 IP addresses for this to work!" exit } $primaryIp = $serverIps[0] $secondaryIp = $serverIps[1] 

Se ci sono 2+ IP sul server, bene – PowerShell restituisce un array, e posso interrogare la lunghezza dell’array ed estrarre il primo e il secondo indirizzo bene.

Il problema è che se c’è un solo IP, Powershell non restituisce un array di un elemento, restituisce l’indirizzo IP (come una stringa, come “192.168.0.100”) – la stringa ha una proprietà .length , è maggiore di 1 , quindi il test passa, e finisco con i primi due caratteri nella stringa, invece dei primi due indirizzi IP nella collezione.

Come posso forzare Powershell a restituire una raccolta di un elemento, o in alternativa determinare se la “cosa” restituita è un object piuttosto che una collezione?