So dieses Ich verwende:Get-WmiObject Win32_NetworkAdapterConfiguration -Match
$IPA = (Get-NetIPAddress | Where-Object InterfaceAlias -eq "MyPortName").IPv4Address
und dann möchte ich folgendes verwenden, um die Subnet Mask für diese IP zu greifen:
$IPInfo = (Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object IPAddress -Match $IPA)
Gefolgt von:
$SubMask = $IPInfo.IPSubnet[0]
Aber dies schlägt fehl, da $ IPInfo leer ist. Wenn ich die IP-Adresse fest Code es funktioniert:
$IPInfo = (Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object IPAddress -Match 10.45.22.100)
Aber die Port-IP wird immer anders sein. Warum nimmt das $ IPA nicht als Match-Parameter?
EDIT: Die IP-Adresse gemeldet wird, hat sowohl die IPv4-und IPv6, weshalb ich versuche, -Match gegen die IPv4.
Ich überprüfe jetzt, ob das dein Problem ist, aber "-Match" unterstützt Regex, so dass irgendwelche Meta-Zeichen dort einen Konflikt verursachen könnten. Wenn das für eine genaue Übereinstimmung ist, verwenden Sie einfach "-eq". Könnte mehr als ein Ergebnis bekommen. Wie sieht '$ ipa' aus, wenn Sie es auf die Konsole drucken? – Matt
'$ IPA.GetType(). FullName' show 'System.Object [] 'durch Zufall? – Matt
Wenn ich nur $ IPA in der Konsole mache, zeigt es 10.45.22.100, aber wenn ich $ IPA.GetType() mache. Voller Name zeigt es System.Object []. Auch ich kann -eq nicht tun, da die IP wie folgt aufgeführt ist: IPAddress {10.45.22.100, 2001: 0db8: 85a3: 0000: 0000: 8a2e: 0370: 7334} – PSNewb