Ich versuche so etwas herauszufiltern:
Get-ADComputer -Filter {name -like "chalmw-dm*" -and Enabled -eq "true"} ...
Das funktioniert wie ein Zauber und bekommt genau das, was ich will ...
Jetzt möchte ich den "name-like ..." - Teil als Variable wie folgt:
Get-ADComputer -Filter {name -like '$nameregex' -and Enabled -eq "true"} |
Ich habe mehrere Fragen geprüft (z. B. PowerShell AD-Modul - Variablen in Filter), aber das funktioniert für mich nicht.
Ich habe es mit folgendem probiert:
$nameRegex = "chalmw-dm*"
$nameRegex = "`"chalmw-dm*`""
Und auch im Get-ADComputer
-Befehl mit denen '
und ohne.
Könnte mir jemand ein paar Hinweise geben?
Sie brauchen keine Anführungszeichen um die Variable.
Get-ADComputer -Filter {name -like '$nameregex' -and Enabled -eq "true"}
das sehr gut finden:
Get-ADComputer -Filter {name -like $nameregex -and Enabled -eq "true"}
Beachten Sie jedoch, dass die Skriptblocknotation für Filteranweisungen irreführend ist, da die Anweisung tatsächlich eine Zeichenfolge ist. Daher ist es besser, sie als solche zu schreiben:
Get-ADComputer -Filter "name -like '$nameregex' -and Enabled -eq 'true'"
Und FTR: Sie verwenden hier Platzhalterabgleich (Operator -like
), nicht reguläre Ausdrücke (Operator -match
).
Fügen Sie doppelte Anführungszeichen hinzu
$nameRegex = "chalmw-dm*"
-like "$nameregex"
oder -like "'$nameregex'"
Oder
-like '*'+$nameregex+'*'
wenn Sie Platzhalter verwenden möchten.