我正在尝试通过 Active Directory 为管理员流水线化数据,从而在 PowerShell ISE 上制作应用程序部署工具。由于 Active Directory 没有模糊搜索功能,我想我会创建一个 GUI 应用程序来帮助管理员搜索、添加和部署应用程序。我决定使用下拉列表 (ddl) 来显示可用的应用程序,因为 ddl 也提供文本输入。然后,无论从 ddl 中选择什么应用程序,它都应该添加到下面的列表框中。该列表框具有多选选项,用户可以在其中多选和删除所选项目。不幸的是,我被困在一个地方,我试图通过下拉列表中的选择来填充我的列表框。
因为从 AD 中提取数据并不是一个困难的部分,但是将选定的数据从 ddl 传递到列表框并没有发生。我尝试使用 .Add_click 将信息传递到列表框。所选应用程序既没有通过,也无法在该列表框中进行任何选择。我将提供我的代码片段。我
#Selected App Name
$StdAppName = New-Object $Labelobject
$StdAppName.Text= 'Text'
$StdAppName.AutoSize=$true
$StdAppName.Location=New-Object System.Drawing.Point (225,262)
#Drop Down List
function Load-Combobox-Apps
{
$appddl.Items.Clear()
$apparray = Get-ADGroup -Filter {name -like "AP_SCCM_FBC_*"} | Select-Object Name, @{Name= 'Appname' ; Expression = {$_.Name -split 'AP_SCCM_FBC_' -join ''}}
#searching for appname
ForEach ($Item in $apparray)
{
$appddl.Items.Add($item.Appname)
$appddl.AutoCompleteSource = 'listItems'
$appddl.AutoCompleteMode = 'Suggest' #
}
}
function GetApplicationDetails
{
$ApplistBox = New-Object System.Windows.Forms.ListBox
$ApplistBox.Location = New-Object System.Drawing.Point(222,257)
$ApplistBox.width = 480
$ApplistBox.SelectionMode = 'MultiExtended'
$ApplistBox.Height = 300
#alternate method
# $AppName=$appddl.SelectedItem
# $details= Get-ADGroup $AppName | select *
# $StdAppName.Text=$details.name
$ApplistBox.Add_Click{
$SelectedItems | ForEach-Object {$ApplistBox.Items.Add($_appddl.Appname)}
return $SelectedItems
}
#$FormObject.Controls.Add($appddl)
$AppForm.Controls.Add($ApplistBox)
$AppForm.Add_Shown({ApplistBox.Select})
}