【发布时间】:2012-10-02 22:12:03
【问题描述】:
我有一个关于语句中的代码块和变量的简单问题。我的脚本收集用户输入并创建一个字符串,以便稍后在 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 语句没有做任何事情。
感谢任何帮助,谢谢。
【问题讨论】:
标签: variables powershell active-directory