1

我正在尝试将机器上已安装应用程序的列表放入列表框中,到目前为止我有这个:

function programsinstalled_current
{
$prog = get-wmiobject win32_product -computer summer -Property Name | select Name
foreach($program in $prog)
{
[Void]$program_list_current.items.add($program)
}
}

它在列表框中返回:

在此处输入图像描述

我的问题是如何摆脱每个程序名称开头的不需要的“@{name=”和每个名称末尾的“}”?

我已经尝试使用以下代码将机器的 AD 组放入 Listbox,它工作正常,但相同的语法不起作用get-wmiobject win32_product

function fill_current_list
{
$processnames_t = (Get-ADComputer -Identity $current_hostname.text -Property MemberOf).MemberOf 
foreach ($processname in $processnames_t)
{
[void]$AD_list_current.Items.Add($processname)
} 

如果可能,我宁愿不使用-replace

谢谢

4

2 回答 2

3

尝试:

[Void]$program_list_current.items.add($program.name)
于 2012-05-20T18:13:19.807 回答
3

您还可以添加所有产品名称而不循环它们:

$prog = gwmi win32_product -computer summer -Property Name | select -expand Name
$program_list_current.items.AddRange($prog)
于 2012-05-21T10:01:06.480 回答