estoy usando Powershell para establecer enlaces de IIS en un servidor web, y que tiene un problema con el siguiente código:¿Cómo puedo forzar a Powershell a devolver una matriz cuando una llamada solo devuelve un objeto?
$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]
Si hay 2+ IP en el servidor, bien - Powershell devuelve una matriz, y Puedo consultar la longitud de la matriz y extraer la primera y la segunda direcciones.
El problema es que, si solo hay una IP, Powershell no devuelve una matriz de un elemento, devuelve la dirección IP (como una cadena, como "192.168.0.100") - la cadena tiene una propiedad .length
, es mayor que 1, por lo que la prueba pasa, y termino con los dos primeros caracteres en la cadena, en lugar de las dos primeras direcciones IP de la colección.
¿Cómo puedo forzar a Powershell a devolver una colección de un elemento, o bien determinar si la "cosa" devuelta es un objeto en lugar de una colección?
aspecto más sin ayuda molesto/plagada de errores de PowerShell .. – user2864740