আমি ওয়েব সার্ভারে আইআইএস বাইন্ডিংগুলি সেট আপ করতে পাওয়ারশেল ব্যবহার করছি এবং নিম্নলিখিত কোডটিতে সমস্যা হচ্ছে:
$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+ আইপি থাকে তবে জরিমানা - পাওয়ারশেল একটি অ্যারের ফিরিয়ে দেয় এবং আমি অ্যারের দৈর্ঘ্যটি জিজ্ঞাসা করতে পারি এবং প্রথম এবং দ্বিতীয় ঠিকানাগুলি ঠিক সূক্ষ্মভাবে বের করতে পারি।
সমস্যাটি হ'ল - যদি কেবল একটি আইপি থাকে তবে পাওয়ারশেল কোনও এক-এলিমেন্ট অ্যারেটি ফিরিয়ে দেয় না, এটি আইপি ঠিকানা দেয় ("192.168.0.100" এর মতো একটি স্ট্রিং হিসাবে) - স্ট্রিংটির একটি .length
সম্পত্তি রয়েছে, এটি 1 এর চেয়েও বড়, তাই পরীক্ষাটি পাস হয় এবং আমি সংগ্রহের প্রথম দুটি আইপি ঠিকানার পরিবর্তে স্ট্রিংয়ের প্রথম দুটি অক্ষর দিয়ে শেষ করি।
আমি কীভাবে পাওয়ারশেলকে একটি উপাদান উপাদান সংগ্রহ করতে বাধ্য করতে পারি, বা বিকল্পভাবে নির্ধারণ করতে পারি যে সংগ্রহের পরিবর্তে প্রত্যাবর্তিত "জিনিস" কোনও বস্তু কিনা?