2

Windowsがカウントを返すのと同じ方法で利用可能なWindowsUpdateのカウントを返すPowershellスクリプトを書くのに疲れています。私が抱えている問題は、ウィンドウの更新が返すカウントと一致するカウントを取得できないことです。

たとえば、私のスクリプトは次のように返すことがあります:
クリティカルカウント:0
重要カウント:1
オプションカウント:30

しかし、Windows Updateは次のように表示します:
クリティカルカウント:1
重要カウント:1
オプションカウント:

29Windowsが表示に使用する基準を知っている人はいますかWindows Updateのカウント?
これが私のコードのサンプルです:

# ----- Get All Assigned updates --------
$UpdateSession = New-Object -ComObject "Microsoft.Update.Session"
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
$SearchResult = $UpdateSearcher.Search('IsInstalled=0')

# ----- Matrix Results for type of updates that are needed --------
$critical = $SearchResult.updates | where { $_.MsrcSeverity -eq "Critical" }
$important = $SearchResult.updates | where { $_.MsrcSeverity -eq "Important" }
$optional = $SearchResult.updates | where { ($_.MsrcSeverity -ne "Critical") -and ($_.MsrcSeverity -ne "Important") }


4

2 に答える 2

3

これを実行してみてください。問題が解決するかどうかはわかりません。PowerShellでアクセス可能なATMがありません。

#Get All Assigned updates in $SearchResult
$UpdateSession = New-Object -ComObject Microsoft.Update.Session
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
$SearchResult = $UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0")


#Matrix Results for type of updates that are needed
$Critical = $SearchResult.updates | where { $_.MsrcSeverity -eq "Critical" }
$important = $SearchResult.updates | where { $_.MsrcSeverity -eq "Important" }
$other = $SearchResult.updates | where { $_.MsrcSeverity -eq $null }

#Write Results
Write-Host "total=$($SearchResult.updates.count)"
Write-Host "critical=$($Critical.count)"
Write-Host "important=$($Important.count)"
Write-Host "other=$($other.count)"
于 2012-03-09T19:42:01.567 に答える