I try to filter out something like this:
Get-ADComputer -Filter {name -like "chalmw-dm*" -and Enabled -eq "true"} ...
This works like a charm and gets exactly what I want...
Now I want the "name -like ..." part as a variable like this:
Get-ADComputer -Filter {name -like '$nameregex' -and Enabled -eq "true"} |
I checked several questions (for example, PowerShell AD Module - Variables in Filter), but this isn't working for me.
I tried it with the following:
$nameRegex = "chalmw-dm*"
$nameRegex = "`"chalmw-dm*`""
And also in the Get-ADComputer
command with those '
and without.
Could anyone give me some hints?
You don't need quotes around the variable, so simply change this:
into this:
Note, however, that the scriptblock notation for filter statements is misleading, because the statement is actually a string, so it's better to write it as such:
Related. Also related.
And FTR: you're using wildcard matching here (operator
-like
), not regular expressions (operator-match
).Add double quote
-like "$nameregex"
or-like "'$nameregex'"
Or
if you would like to use wildcards.