为什么变量不能与 Powershell 中的 Get-Aduser 一起使用?

Why are variables not working with Get-Aduser in powershell?

寻找一些关于为什么这不起作用以及我可能做错了什么的解释。任何帮助都会很棒!

预期结果: 史密斯

Get-Aduser -filter {(givenname -eq "Bob") -and (surname -eq "Smith"))} | select-object SamAccountName

结果: 史密斯

工作正常。很高兴


预期结果: 史密斯

$textbox_FirstName = "Bob"
$textbox_LastName = "Smith"

Get-Aduser -filter {(givenname -eq "$textbox_FirstName.text") -and (surname -eq "$textbox_LastName.text")} | select-object SamAccountName

结果:(空白)

我试过 givenname -eq "$textbox_FirstName.text" 不带引号,不带 .text,完全不带引号。仍然没有结果:(

两个变量都是 string 类型,它们没有 .text 属性,此外,向变量添加双引号会扩展变量并连接 .text:

$textbox_FirstName = "Bob"
"$textbox_FirstName.Text" => Bob.Text

这些选项中的任何一个都应该为您提供您期望的输出:

Get-Aduser -Filter {GivenName -eq $textbox_FirstName -and Surname -eq $textbox_LastName}
Get-Aduser -Filter "GivenName -eq '$textbox_FirstName' -and Surname -eq '$textbox_LastName'"
Get-Aduser -LDAPFilter "(&(GivenName=$textbox_FirstName)(Surname=$textbox_LastName))"