Powershell - Get-aduser使用$ var返回任何值

时间:2013-05-06 15:36:40

标签: powershell active-directory

我正在使用此命令查询AD以获取用户名::

get-aduser -filter 'SamAccountName -like "trembto*"

AD给我一些符合该搜索的结果。

当我尝试在$ var中应用此行时,我得不到结果:

$userloop = "trembto"
get-aduser -filter 'SamAccountName -like "$($userloop)*"'

我应该得到相同的结果,但它总是返回我,没有错误信息 我试过替代var部分但是徒劳无功。

感谢帮助我

1 个答案:

答案 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*'