如何检查PC中是否安装了修补程序KBxxxxxx(例如:KB4012212)?

时间:2017-09-25 12:08:21

标签: powershell if-statement hotfix

我将创建(使用PowerShell脚本)一个表并将结果(正/负)添加到其中。 我有一个文本文件computers.txt,其中列出了所有PC。

喜欢这个

CSNAME          Hotfixinfo
PC1             is installed
PC2             is not installed
PC3             is installed
etc.

使用我的实际脚本,我只能看到积极的结果。

Get-Content .\computers.txt | Where {
    $_ -and (Test-Connection $_ -Quiet)
} | foreach {
    Get-Hotfix -Id KB4012212 -ComputerName $_ |
        Select CSName,HotFixID |
        ConvertTo-Csv |
        Out-File "C:\$_.csv"
}

1 个答案:

答案 0 :(得分:0)

我建议解析并处理正面和负面结果(也比管道ForEach-Object更快):

:parse ForEach ($Computer in (Get-Content C:\Path\computers.txt))
{
    If (Test-Connection $Computer -Quiet)
    {
        $Result = Get-Hotfix -Id KB4012212 -ComputerName $Computer -ErrorAction 'SilentlyContinue'

        If ($Result)
        {
            $Result |
              Select-Object -Property CSName,HotFixID |
              ConvertTo-Csv -NoTypeInformation |
              Out-File "C:\$Computer.csv"
            Continue :parse
         }
         "`"CSName`",`"HotFixID`"`r`n`"$Computer`",`"NUL`"" |
           Out-File "C:\$Computer.csv"
    } Else { Write-Host 'Unable to connect to $Computer' }
}