J'utilise Powershell pour configurer des liaisons IIS sur un serveur Web et j'ai un problème avec le code suivant:
$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]
S'il y a plus de 2 adresses IP sur le serveur, très bien - Powershell renvoie un tableau, et je peux interroger la longueur du tableau et extraire les première et deuxième adresses très bien.
Le problème est - s'il n'y a qu'une seule adresse IP, Powershell ne renvoie pas de tableau à un élément, il renvoie l'adresse IP (sous forme de chaîne, comme "192.168.0.100") - la chaîne a une .length
propriété, elle est supérieure à 1, donc le test réussit et je me retrouve avec les deux premiers caractères de la chaîne, au lieu des deux premières adresses IP de la collection.
Comment puis-je forcer Powershell à renvoyer une collection à un élément ou déterminer si la "chose" renvoyée est un objet plutôt qu'une collection?