为啥变量在 Powershell 中不能与 Get-Aduser 一起使用?

Posted

技术标签:

【中文标题】为啥变量在 Powershell 中不能与 Get-Aduser 一起使用?【英文标题】:Why are variables not working with Get-Aduser in powershell?为什么变量在 Powershell 中不能与 Get-Aduser 一起使用? 【发布时间】:2021-07-24 02:40:37 【问题描述】:

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

预期结果: BSMITH

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

结果: BSMITH

工作正常。很好走


预期结果: BSMITH

$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,根本不带引号。还是没有结果:(

【问题讨论】:

【参考方案1】:

这两个变量都是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))"

【讨论】:

最终这就是我的最终代码的样子。这超出了原始问题的范围。但你的回答肯定让我走上了正确的道路。非常感谢您的帮助!! $textbox_psOutput.Text = Get-Aduser -Filter (Surname -eq $Textbox_Lastname.Text -and GivenName -eq $Textbox_FirstName.Text) | Select-Object SamAccountName | Out-String 乐于帮助@KyleMason

以上是关于为啥变量在 Powershell 中不能与 Get-Aduser 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Powershell 环境 PATH 与系统环境 PATH 不同?

如何在powershell的“get-content command”中传递变量

Get-WmiObject 不能在 PowerShell (x86) 但在 PowerShell 上执行

PowerShell和Python能结婚吗?听说他们是相同类型啊,为啥不能,他们互补,非常和谐。

PowerShell和Python能结婚吗?听说他们是相同类型啊,为啥不能,他们互补,非常和谐。

PowerShell和Python能结婚吗?听说他们是相同类型啊,为啥不能,他们互补,非常和谐。