を失敗:そのIPのサブネットマスクをつかむために、以下に使用するは、Get-WmiObjectコマンドのWin32_NetworkAdapterConfiguration -matchは、だから私はこの使用しています
$IPA = (Get-NetIPAddress | Where-Object InterfaceAlias -eq "MyPortName").IPv4Address
をして、私が欲しい:
$IPInfo = (Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object IPAddress -Match $IPA)
が続きます。
$SubMask = $IPInfo.IPSubnet[0]
しかし、$ IPInfoが空白の場合は失敗します。 IPAddressをハードコードすると、次のように動作します。
$IPInfo = (Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object IPAddress -Match 10.45.22.100)
しかし、ポートのIPは常に異なっています。 $ IPAをマッチパラメータとして使用しないのはなぜですか?
EDIT:報告されているIPアドレスがIPv4とIPv6の両方を持っているため、私はIPv4とのマッチングを試みています。
これが問題なのかどうかチェックしていますが、 '-match'は正規表現をサポートしているため、そこですべてのメタ文字が競合する可能性があります。これが完全一致の場合は、 '-eq'insteadを使用してください。複数の結果が得られる可能性もあります。あなたがコンソールにそれを印刷するとき、 '$ ipa'はどのように見えますか? – Matt
'$ IPA.GetType()。FullName'は' System.Object [] 'を偶然に表示しますか? – Matt
コンソールで$ IPAだけを実行すると、10.45.22.100が表示されますが、$ IPA.GetType()を実行すると、フルネームでSystem.Object []が表示されます。 また、IPが次のようにリストされているため、-eqを実行できません。 IPAddress {10.45.22.100,2001:0db8:85a3:0000:0000:8a2e:0370:7334} – PSNewb