2

我在 powershell 中有点菜鸟,我正在尝试在 Powershell Studio 2018 中构建一个简单的用户界面,以在活动方向搜索名为 like 的用户列表。在 Powershell Studio 之外它工作得很好,但在 PSS2018 中我不能在我的命令中使用变量......

我的目标只是在列表框中输出我的结果

#$gui_searchUser01.text is well returned on my mouse click event so i transform it into
 '*nameentered*'

    $searchstringADname = " '*" + $gui_searchUser01.Text + "*'"

    # If i do 
#Get-ADUser -Filter { name -like '*nameentered*' } -Properties name | Select-Object Name 
#it's outputing well in texbox1 but not working will the next line :(

    $ADusers = Get-ADUser -Filter { name -like " '*" + $gui_searchUser01.Text + "*'" } -Properties name | Select-Object Name

    $textbox1.Text = $ADusers

    #$gui_UsersResults01.Items.AddRange([System.Collections.ArrayList]$ADusers)**

我当然也尝试将 $searchstringADname 直接放在我的命令中,结果相同,不适用于 gui,但在经典 powershell 中运行良好


另一个不起作用的尝试:(

$button1_Click={
    #TODO: Place custom script here
    [string]$getvalue = $textbox1.Text
    [string]$searchstringADname = " '*" + $getvalue + "*'"
    [string]$results = Get-ADUser -Filter { name -like $searchstringADname } -Properties name | Select-Object Name
    $textbox2.Text = $results
}

$searchstringADname 没有返回到它保持“null”的命令中,但是当我直接将主机写入 textbox2 时,我得到了我的值!$搜索字符串广告名!我会杀了自己哈哈

解决方案:问题来自我要使用的 Get-ADuser。我的问题的好语法是:

$ADusers = Get-ADUser -Filter * -Properties name | Where-Object { $_.name -Like "$searchstringADname" } | 选择名称、用户主体名称

停止关注变量范围问题后,我在这里找到了答案:) https://social.technet.microsoft.com/wiki/contents/articles/28485.filters-with-powershell-active-directory-module-cmdlets.aspx

4

0 回答 0