मैं वेब सर्वर पर IIS बाइंडिंग सेट करने के लिए Powershell का उपयोग कर रहा हूं, और निम्न कोड के साथ समस्या हो रही है:
$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]
यदि सर्वर पर 2+ आईपी हैं, तो ठीक है - पॉवरशेल एक सरणी देता है, और मैं सरणी लंबाई को क्वेरी कर सकता हूं और पहले और दूसरे पते को ठीक कर सकता हूं।
समस्या यह है - यदि केवल एक IP है, तो Powershell एक-तत्व सरणी नहीं लौटाता है, यह IP पता (एक स्ट्रिंग के रूप में, "192.168.0.100") लौटाता है - स्ट्रिंग में एक .length
गुण है, यह 1 से अधिक है, इसलिए परीक्षण पास हो जाता है, और मैं संग्रह में पहले दो आईपी पतों के बजाय, स्ट्रिंग में पहले दो पात्रों के साथ समाप्त होता हूं।
मैं या तो पॉवर्स को एक-तत्व संग्रह को वापस करने के लिए कैसे मजबूर कर सकता हूं, या वैकल्पिक रूप से यह निर्धारित कर सकता है कि संग्रह के बजाय "वस्तु" लौटाया गया ऑब्जेक्ट है?