2015-08-16 46 views
1

我试图找到$ unhotfix数组中声明的所有修补程序,然后卸载每个如果找到。Powershell匹配数组和管道来处理

$unhotfix ="KB2966826","KB2966827","KB2966828" 

Get-Hotfix | ? (HotFixId -match $unhotfix) | ` 
${wusa.exe /uninstall /kb:$_.HotfixId /norestart /log} | wait-process 

使用下面的作品比较一个值:

Get-Hotfix | ? (HotFixId -match "KB2966826") | select HotFixId 

不过,我失去了一些东西大约相同排列

Get-Hotfix | ? (HotFixId -match $unhotfixid) | select HotFixId 

没有给出结果。

回答

1

Get-Hotfix有一个-Id parameter接受一组修复程序名称。

Get-Hotfix -Id $unhotfix 
1
Get-HotFix | 
    Where-Object {$unhotfix.Contains($_.HotFixId)} 

这里做它测试的修补程序列表的数组,如果数组中找到HotFixId,它会返回匹配的修补程序。

+1

'Contains()'方法区分大小写。我建议使用'-contains'运算符代替。 –