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

【问题讨论】:

    标签: powershell variables get-aduser


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多