1

我正在使用此命令查询 AD 的用户名::

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

AD 向我返回了一些符合该搜索的结果。

当我尝试在里面应用这个带有 $var 的行时,我没有得到任何结果:

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

我应该得到相同的结果,但它总是什么也没给我,我尝试过的没有错误消息可以替代 var 部分,但徒劳无功。

谢谢你帮助我

4

1 回答 1

4

使用单引号创建字符串时不会发生变量扩展。您必须使用双引号来创建字符串以进行变量扩展。在您的情况下,您需要使用双引号来创建过滤器字符串,并在扩展变量周围使用单引号。

改成这样:

$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*'
于 2013-05-06T16:19:15.570 回答