我试图通过已经从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'
}
}
1条答案
按热度按时间wgx48brx1#
要修剪组名称,您可以使用计算属性,如使用split/join的示例,您可以展开以替换下拉选项的下划线等:
然后在下拉列表中使用修剪后的
$item.AppName
作为修剪后的名称,当需要在AD中引用组时使用原始的$item.Name
。为了改进自动完成功能,请查看此处的答案,了解涉及根据输入的文本更新下拉列表的选项:C# winforms combobox dynamic autocomplete
(Be注意只运行
Get-ADGroup
一次,否则搜索框更新时间过长)