web-dev-qa-db-ja.com

変数で「-Filter」を使用する

私はこのようなものを除外しようとします:

Get-ADComputer -Filter {name -like "chalmw-dm*" -and Enabled -eq "true"} ...

これは魅力のように機能し、私が望むものを正確に取得します...

今、私はこのような変数として「名前のような...」部分が必要です:

Get-ADComputer -Filter {name -like '$nameregex' -and Enabled -eq "true"} |

いくつかの質問をチェックしました(たとえば、PowerShell AD Module-Filtersの変数) 。

私は次のことを試してみました:

$nameRegex = "chalmw-dm*"
$nameRegex = "`"chalmw-dm*`""

また、Get-ADComputerコマンドとそれらの'およびなし。

誰か私にいくつかのヒントを教えてもらえますか?

7
Michael

変数を引用符で囲む必要はないので、単にこれを変更します。

Get-ADComputer -Filter {name -like '$nameregex' -and Enabled -eq "true"}

これに:

Get-ADComputer -Filter {name -like $nameregex -and Enabled -eq "true"}

ただし、フィルターステートメントのスクリプトブロック表記は紛らわしいことに注意してください。ステートメントは実際には文字列であるため、次のように記述する方が適切です。

Get-ADComputer -Filter "name -like '$nameregex' -and Enabled -eq 'true'"

関連関連する

FTR:ここでワイルドカードマッチングを使用しています(演算子-like)、正規表現ではありません(演算子-match)。

10
Ansgar Wiechers

二重引用符を追加

$nameRegex = "chalmw-dm*"

-like "$nameregex"または-like "'$nameregex'"

1
walid toumi

または

-like '*'+$nameregex+'*'

ワイルドカードを使用する場合。

0
user5248098