猿问

get-Aduser-filter将不接受变量。

get-Aduser-filter将不接受变量。

我想检查一下系统中是否已经存在一个用户帐户。

$SamAc = Read-Host 'What is your username?'$User = Get-ADUser -Filter {sAMAccountName -eq "$SamAc"}

我不知道为什么,但是$User将始终返回NULL,即使{sAMAccountName -eq "$SamAc"}应该是真的。

我在这里错过了什么?

编辑:

这就是缺少的东西:

$User = Get-ADUser -Filter "sAMAccountName -eq '$SamAc'"

编者注:这个脚本块 ({ ... })被替换为.



素胚勾勒不出你
浏览 872回答 3
3回答

万千封印

我不得不对此发表评论,因为这使我很想解决这个问题。约瑟夫·奥尔康有个正确的主意。Filter参数接受一个字符串,然后计算该字符串,以便处理筛选器。让人们对此感到震惊的是,您可以选择使用花括号而不是{},如果您使用WHERE.它还是要被当作一根线来对待。$SamAc = Read-Host 'What is your username?'$User = Get-ADUser -Filter "sAMAccountName -eq '$SamAc'"我建议坚持引用,以使自己和其他人更加清楚/可读,并避免潜在的语法错误,或者坚持在管道中的{}。在这样做时,我发现最好在外部使用双引号,在内部使用单引号,这样您仍然可以智能感知对变量的检测。
随时随地看视频慕课网APP
我要回答