为啥变量在 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能结婚吗?听说他们是相同类型啊,为啥不能,他们互补,非常和谐。