为了账号安全,请及时绑定邮箱和手机立即绑定

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

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'"编者注:这个脚本块 ({ ... })被替换为弦.
查看完整描述

3 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

我不得不对此发表评论,因为这使我很想解决这个问题。

约瑟夫·奥尔康有个正确的主意。Filter参数接受一个字符串,然后计算该字符串,以便处理筛选器。让人们对此感到震惊的是,您可以选择使用花括号而不是{},如果您使用WHERE.它还是要被当作一根线来对待。

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

我建议坚持引用,以使自己和其他人更加清楚/可读,并避免潜在的语法错误,或者坚持在管道中的{}。在这样做时,我发现最好在外部使用双引号,在内部使用单引号,这样您仍然可以智能感知对变量的检测。


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 870 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信