5474149378
Goto Top

PowerShell contains Array

Moin zusammen,

ich weiß nicht, ob ich gerade einen Denkfehler habe....
Ich habe folgendes Problem:
$ADcomputers = Get-ADComputer  -Filter 'OperatingSystem -like "*server*"  
$WSUScomputers = Get-WsusComputer -UpdateServer $WSUS | ?{($_.RequestedTargetGroupName -match $group)}

Foreach($adcomputer in $ADcomputers){
    if($adcomputer.DNSHostName.ToLower() -contains $WSUScomputer.FullDomainName){

    }else{
        $adcomputer.DNSHostName.ToLower()
    }
        
}
Wenn ich den IF-Teil mit $WSUScomputer.FullDomainName.Contains($adcomputer.DNSHostName.ToLower()) ersetze funktioniert es wie gewünscht. Auch wenn ich bsp. den letzten Wert direkt mit dem Wert des Arrays (also $WSUScomputer.FullDomainName[35]) vergleiche, funktioniert es ohne Probleme.

Auch wenn ich jetzt eine Lösung gefunden habe, würde ich gern wissen warum das -contains nicht funktioniert.

Content-ID: 5572929050

Url: https://administrator.de/forum/powershell-contains-array-5572929050.html

Ausgedruckt am: 23.04.2025 um 03:04 Uhr

3063370895
Lösung 3063370895 23.01.2023 aktualisiert um 08:54:45 Uhr
Goto Top
Moin,

String.Contains() und -contains sind zwei unterschiedliche Dinge.

Die .NET-Methode String.Contains() prüft ob ein String in einem anderen String vorkommt

der Powershell-Vergleichsoperator -contains prüft ob ein Objekt in einer Sammlung von Objekten enthalten ist

In deinem Fall könntest du statt -contains vermutlich -match verwenden.

String.Contains()

Powershell -contains

Powershell -match
5474149378
Lösung 5474149378 23.01.2023 um 09:03:01 Uhr
Goto Top
Moin,

danke dir erstmal!

Ich hab den Fehler gefunden. Tatsächlich funktioniert der Vergleich von Eigenschaften des Objektes doch^^

Ist natürlich doof, wenn man die Seiten vertauscht.
Mit $WSUScomputer.FullDomainName -contains $adcomputer.DNSHostName.ToLower() funktioniert es auch.

Es ist Montag.... Trotzdem danke für die schnelle Rückmeldung!
Crusher79
Crusher79 23.01.2023 um 11:13:28 Uhr
Goto Top
Na ist doch super.

Dann kannst du ja den Thread auf Gelöst setzten face-wink
5474149378
5474149378 23.01.2023 um 13:39:38 Uhr
Goto Top
Ach srry, bin noch relativ neu hier^^ Ich denk nächstes Mal dran.