Powershell检查更新补丁 6


用一个窗口列出所有的安装过的更新补丁,COM可以做到。不幸的是,它用起来不够爽,也不支持远程。

现在我们则例有一个Get-WindowsUpdate的函数,它能获取到本地已安装的默认更新,你也可以从指定电脑或同时从多个远程电脑获取这些更新数据。

通过Powershell的远程访问电脑,正常操作的前提是它的远程是被已打开的(例如WINDOWS SERVER2012默认打开PS远程管理),你只需要本地管理员权限在对方电脑上。

function Get-WindowsUpdate
{
  [CmdletBinding()]
  param
  (
    [String[]]
    $ComputerName,
    $Title = '*',
    $Description = '*',
    $Operation = '*'
  )
  
  $code = {
    param
    (
      $Title,
      $Description
    )


    $Type = @{
      name='Operation'
      expression={
    
    switch($_.operation)
    {
            1 {'Installed'}
            2 {'Uninstalled'}
            3 {'Other'}
    }
 }
}
    
    
    $Session = New-Object -ComObject 'Microsoft.Update.Session'
    $Searcher = $Session.CreateUpdateSearcher()
    $historyCount = $Searcher.GetTotalHistoryCount()
    $Searcher.QueryHistory(0, $historyCount) | 
    Select-Object Title, Description, Date, $Type |
    Where-Object { $_.Title -like $Title } |
    Where-Object { $_.Description -like $Description } |
    Where-Object { $_.Operation -like $Operation }
  }

  $null = $PSBoundParameters.Remove('Title')
  $null = $PSBoundParameters.Remove('Description')
  $null = $PSBoundParameters.Remove('Operation')

  Invoke-Command -ScriptBlock $code @PSBoundParameters -ArgumentList $Title, $Description
}

这个函数也支持筛选功能,如此我们只想得到已安装的OFFICE更新,只需这样做: 

1

原文地址:Checking Windows Updates

本文链接: https://www.pstips.net/checking-windows-updates.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

6 条评论 “Powershell检查更新补丁