phatair
Goto Top

Powershell Filter Parameter - mehrere Werte

Hallo zusammen,

ich habe folgendes Problem.
Ich möchte aus den Netzwerk Adaptern die Info auslesen ob eine IP Adresse gezogen wurde und ob eine bestimmte DNSDomain hinterlegt ist.

Ich kann mit den folgenden Befehlen danach Filtern
Get-WmiObject Win32_NetworkAdapterConfiguration -filter "DNSDomain = '<DOMAIN>'"  
Get-WmiObject Win32_NetworkAdapterConfiguration -filter "ipenabled = 'true'"  

Aber wie kann ich die beiden Filter in einem Befehl vereinen, so das mir nur die Adapter angezeigt werden, die "ipenabled = 'true'" und "DNSDomain = '<DOMAIN'" eingetragen haben?


Get-WmiObject Win32_NetworkAdapterConfiguration -filter "DNSDomain = '<DOMAIN>'" -and "ipenabled = 'true'"  
hat nicht funktioniert.

Vielen Dank schon mal.
Gruß

Content-Key: 7110793869

Url: https://administrator.de/contentid/7110793869

Printed on: April 27, 2024 at 17:04 o'clock

Mitglied: 3063370895
Solution 3063370895 May 11, 2023 updated at 12:06:06 (UTC)
Goto Top
Hi,
Get-CimInstance Win32_NetworkAdapterConfiguration -Filter "ipenabled = 'true' and DNSDomain = 'domain'"  

das 'and' ist in diesem Fall Teil des WMI-Filters (in WQL), nicht Teil von Powershell.

Info: Get-WMIFilter ist deprecated und kann (in den meisten Fällen) 1 zu 1 durch Get-CimInstance ersetzt werden.

-Thomas
Member: phatair
phatair May 11, 2023 updated at 12:20:52 (UTC)
Goto Top
Hi Thomas,
manchmal ist es so einfach face-smile
Hat wunderbar funktioniert. Danke für die schnelle Hilfe.

Gruß,
Steffen

EDIT: Eein kleines Problem gibt es leider doch noch.
Der Hintergrund ist, dass wir auf einem bestimmten Adapter "Adressen dieser Verbindung in DNS registrieren" aktivieren müssen.

So funktioniert es auch
$networkConfig =  Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "ipenabled = 'true' and DNSDomain = '<DOMAIN>'"  
$networkConfig.SetDynamicDNSRegistration($true,$false)

Wenn ich aber Get-WmiObject durch Get-CimInstance ersetze und das Script laufen lasse, erhalte ich folgende Fehlermeldung:

Fehler beim Aufrufen der Methode, da [Microsoft.Management.Infrastructure.CimInstance] keine Methode mit dem Namen "SetDynamicDNSRegistration" enthält.  
In Zeile:2 Zeichen:1
 $networkConfig.SetDynamicDNSRegistration($true,$false)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (SetDynamicDNSRegistration:String) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound

Hat hier noch jemand eine Idee, was ich anpassen muss wenn ich Get-CimInstance verwende?
Mitglied: 7010350221
Solution 7010350221 May 11, 2023 updated at 12:38:58 (UTC)
Goto Top
Hi.
Methoden ruft man dort mit Invoke-CimMethod auf
https://learn.microsoft.com/en-us/powershell/module/cimcmdlets/invoke-ci ...
Get-CimInstance Win32_NetworkAdapterConfiguration -Filter "ipenabled = 'true' and DNSDomain = 'domain'" | Invoke-CimMethod -MethodName SetDynamicDNSRegistration -Arguments @{FullDNSRegistrationEnabled=$true;DomainDNSRegistrationEnabled=$false}  


Gruß
Mitglied: 3063370895
3063370895 May 11, 2023 at 13:31:51 (UTC)
Goto Top
Zitat von @phatair:

Hi Thomas,
manchmal ist es so einfach face-smile
Hat wunderbar funktioniert. Danke für die schnelle Hilfe.

Bitte auch den/die entsprechenden Beiträge, die dir zur Lösung verholfen hat als Lösung markieren face-smile

-Thomas
Member: phatair
phatair May 11, 2023 at 14:01:57 (UTC)
Goto Top
Zitat von @7010350221:

Hi.
Methoden ruft man dort mit Invoke-CimMethod auf
https://learn.microsoft.com/en-us/powershell/module/cimcmdlets/invoke-ci ...
Get-CimInstance Win32_NetworkAdapterConfiguration -Filter "ipenabled = 'true' and DNSDomain = 'domain'" | Invoke-CimMethod -MethodName SetDynamicDNSRegistration -Arguments @{FullDNSRegistrationEnabled=$true;DomainDNSRegistrationEnabled=$false}  


Gruß

Das war die Lösung. Danke!

Zitat von @7010350221:

Hi.
Methoden ruft man dort mit Invoke-CimMethod auf
https://learn.microsoft.com/en-us/powershell/module/cimcmdlets/invoke-ci ...
Get-CimInstance Win32_NetworkAdapterConfiguration -Filter "ipenabled = 'true' and DNSDomain = 'domain'" | Invoke-CimMethod -MethodName SetDynamicDNSRegistration -Arguments @{FullDNSRegistrationEnabled=$true;DomainDNSRegistrationEnabled=$false}  


Gruß

Hi Thomas, das mache ich. Ich hatte deinen Beitrag schon als "Lösung" markiert und dann hatte ich noch das andere Problem. Muss schauen ob ich 2 Themen als "Lösung" markieren kann.