私はこのようなものを除外しようとします:
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
コマンドとそれらの'
およびなし。
誰か私にいくつかのヒントを教えてもらえますか?
変数を引用符で囲む必要はないので、単にこれを変更します。
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
)。
二重引用符を追加
$nameRegex = "chalmw-dm*"
-like "$nameregex"
または-like "'$nameregex'"
または
-like '*'+$nameregex+'*'
ワイルドカードを使用する場合。