Powershell中Active Directory管道的模糊搜索

rqdpfwrv  于 2023-04-12  发布在  Shell
关注(0)|答案(1)|浏览(171)

我试图通过已经从Active Directory中提取的管道构建模糊搜索(运行时)。
最初,我试图将应用程序部署到客户端。因此,为了使管理员更轻松,我试图通过从PowerShell中的AD中提取的所有应用程序进行模糊搜索。
我试着做一个下拉列表,因为它允许在应用程序名称中的Admin ty类型。但由于从AD调用的广告组有其起始文本为“AP_SCCM_FBC_”我试图修剪管道,但不能,所以我想只是为了使其作为加载的文本在搜索字段中,所以每次用户不必键入它,我使用。AutoCompleteMode来追加文本,但这并没有给予正确的搜索,因为我必须搜索应用程序的确切名称,例如“Microsoft_Power_BI”,而我正在尝试“Power BI”。

function Load-Combobox-Apps
{
    $appddl.Items.Clear()
    $apparray = Get-ADGroup -Filter {name -like "AP_SCCM_FBC_*"} | Select-Object Name
   
    $appddl.Text = "AP_SCCM_FBC_"
    ForEach ($Item in $apparray)
    {
        $appddl.Items.Add($item.Name)
        $appddl.AutoCompleteSource = 'listItems'
        $appddl.AutoCompleteMode = 'Append'
    }
}
wgx48brx

wgx48brx1#

要修剪组名称,您可以使用计算属性,如使用split/join的示例,您可以展开以替换下拉选项的下划线等:

$apparray = Get-ADGroup -Filter {name -like "AP_SCCM_FBC_*"} |
  # trim off AD group name prefix:
  Select-Object Name, 
    @{Name='AppName';Expression={$_.Name -split 'AP_SCCM_FBC_' -join ''}}

Name                           AppName
----                           -------
AP_SCCM_FBC_Microsoft_Power_BI Microsoft_Power_BI
AP_SCCM_FBC_Other_App          Other_App

然后在下拉列表中使用修剪后的$item.AppName作为修剪后的名称,当需要在AD中引用组时使用原始的$item.Name
为了改进自动完成功能,请查看此处的答案,了解涉及根据输入的文本更新下拉列表的选项:C# winforms combobox dynamic autocomplete
(Be注意只运行Get-ADGroup一次,否则搜索框更新时间过长)

相关问题