Powershell:从get-wmiobject win32_product过滤不需要的值

时间:2012-05-20 18:00:52

标签: arrays powershell

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

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)
}
}

并在列表框中返回:

enter image description here

我的问题是如何摆脱每个节目名称开头不需要的'@ {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

由于

2 个答案:

答案 0 :(得分:3)

尝试:

[Void]$program_list_current.items.add($program.name)

答案 1 :(得分:3)

您还可以在不循环的情况下添加所有产品名称:

$prog = gwmi win32_product -computer summer -Property Name | select -expand Name
$program_list_current.items.AddRange($prog)