我有一个关于语句中的代码块和变量的简单问题。我的脚本收集用户输入并创建一个字符串,稍后可以在 powershell 语句中使用。
$filter = @()
While ($filter[-1] -ne "end") {
$filter += read-host 'Type the name of an OU you want to filter or type "end" to start the script'
if ($filter[-1] -eq "end") {
break
}
$strFilter += "`$_`.DistinguishedName -notlike `"*" + $filter[-1] + "*`" "
$strFilter += "-and "
}
$strFilter = $strFilter.SubString(0,$strFilter.length-5)
基本上,用户将输入任意数量的单词,这些单词将被附加到字符串中"$_.DistinguishedName -notlike "*<WORD>*""
并将它们放在一起,-and
直到输入最后一个单词。
那部分工作正常,它使用这个生成的字符串来收集似乎不起作用的信息;我有一种感觉,我只是想念一些非常简单的东西。
例如:
$computers = get-adcomputer -Filter 'ObjectClass -eq "Computer"' -properties "OperatingSystem","CanonicalName","Description"
$filteredComputers = $computers | where-object { $strFilter }
$filteredComputers 返回与 $computers 相同的结果,这让我相信带有我的字符串变量的 Where-object 语句没有做任何事情。
感谢任何帮助,谢谢。