$remove = @('microsoft*','visual*')
Get-WmiObject -Class Win32_Product -ComputerName $CompName | Where-Object {
$f = $_.name -notcontains $remove
$remove | Where-Object { $f.($_) }
} | Format-Wide -Property Name -Column 1
我不确定如何正确嵌套,以便我可以过滤掉$remove
中的所有内容并显示其余的程序。我没有收到任何错误,它会等待大约10秒钟然后继续PS提示。
答案 0 :(得分:0)
notcontains寻找完全匹配,所以不会帮助你。 最简单的方法可能就是这样,虽然如果有很多要排除的话,你的正则表达式会变得很糟糕:
get-wmiobject -class Win32_Product -ComputerName $CompName | Where-Object {
$_.name -notmatch "^(Microsoft|Visual)."
} | Format-Wide -Property Name -Column 1