2017-01-13 16 views

答えて

2

ここでは、PowerShellからWUAの履歴を照会する方法のサンプルを示します。まず、いくつかの機能を定義します。これらの関数が定義された後

# Convert Wua History ResultCode to a Name 
# 0, and 5 are not used for history 
# See https://msdn.microsoft.com/en-us/library/windows/desktop/aa387095(v=vs.85).aspx 
function Convert-WuaResultCodeToName 
{ 
    param(
     [Parameter(Mandatory=$true)] 
     [int] $ResultCode 
    ) 

    $Result = $ResultCode 
    switch($ResultCode) 
    { 
     2 { 
     $Result = "Succeeded" 
     } 
     3 { 
     $Result = "Succeeded With Errors" 
     } 
     4 { 
     $Result = "Failed" 
     } 
    } 

    return $Result 
} 

function Get-WuaHistory 
{ 

    # Get a WUA Session 
    $session = (New-Object -ComObject 'Microsoft.Update.Session') 

    # Query the latest 1000 History starting with the first recordp  
    $history = $session.QueryHistory("",0,1000) | ForEach-Object { 
    $Result = Convert-WuaResultCodeToName -ResultCode $_.ResultCode 

    # Make the properties hidden in com properties visible. 
    $_ | Add-Member -MemberType NoteProperty -Value $Result -Name Result 
    $Product = $_.Categories | Where-Object {$_.Type -eq 'Product'} | Select-Object -First 1 -ExpandProperty Name 
    $_ | Add-Member -MemberType NoteProperty -Value $_.UpdateIdentity.UpdateId -Name UpdateId 
    $_ | Add-Member -MemberType NoteProperty -Value $_.UpdateIdentity.RevisionNumber -Name RevisionNumber 
    $_ | Add-Member -MemberType NoteProperty -Value $Product -Name Product -PassThru 

    Write-Output $_ 
    } 

    #Remove null records and only return the fields we want 
    $history | 
     Where-Object {![String]::IsNullOrWhiteSpace($_.title)} | 
      Select-Object Result, Date, Title, SupportUrl, Product, UpdateId, RevisionNumber 
} 

、我々はアップデート

# Get all the update History, formatted as a table 
Get-WuaHistory | Format-Table 
+0

を外しすぎDefenderのオプションを除外し得ることができます。私たちはそれを別々に必要としません。 :) –

+0

私は可読性のために削除し、可読性のためにいくつかの他のコードをリファクタリングしましたが、マシン上でそれを実際に使用してみて、排除防御オプションが必要ない場合に同意するかどうかを確認してください。 Windows 10では、Windows Update履歴ウィンドウ自体が防御側を除外します。 – TravisEz13

+0

素晴らしい...うん、それはします。 –

関連する問題