我正在使用此命令查询AD以获取用户名::
get-aduser -filter 'SamAccountName -like "trembto*"
AD给我一些符合该搜索的结果。
当我尝试在$ var中应用此行时,我得不到结果:
$userloop = "trembto"
get-aduser -filter 'SamAccountName -like "$($userloop)*"'
我应该得到相同的结果,但它总是返回我,没有错误信息 我试过替代var部分但是徒劳无功。
感谢帮助我
答案 0 :(得分:3)
使用单引号创建字符串时,不会发生变量扩展。必须使用双引号来创建一个字符串,以便进行变量扩展。在您的情况下,您需要使用双引号来创建过滤器字符串,并在扩展变量周围使用单引号。
更改为:
$userloop = "trembto"
get-aduser -filter "SamAccountName -like '$($userloop)*'"
您可以通过检查用于过滤器参数的字符串来查看此行为。
测试:
$userLoop = "trembto"
$filter = 'SamAccountName -like "$($userLoop)*"'
$ filter的输出:
SamAccountName -like "$($userLoop)*"
更改为:
$userLoop = "trembto"
$filter = "SamAccountName -like '$($userLoop)*'"
输出:
SamAccountName -like 'trembto*'