LoginSignup
1
0

WSUSでいらない更新を消す

WSUSのアップデートファイルは「未承認」にした上で
クリーンアップウィザードを動かすと消えてくれる。
ファイルが貯まってくるとなかなかのサイズになるので
自動で不要なアップデートを未承認状態にしたい。

いらない更新とは?

様々な条件があるかもしれないけど
『置き換える更新があり、かつ、その置き換える更新が承認済みである。』
とすると以下のスクリプトで設定できる。

function chkSupersededUpdatesApproval($update){
    if($update.IsSuperseded -eq $true){
        $supersedUpdates = $update.GetRelatedUpdates([Microsoft.UpdateServices.Administration.UpdateRelationship]::UpdatesThatSupersedeThisUpdate)
        foreach($superUpdate in $supersedUpdates){
            if($superUpdate.IsApproved -eq $true){
                #置き換え更新が承認済み
                Write-Host ('┗「'+$superUpdate.Title+'」が承認済みです')
                return $true
            }else{
                if($superUpdate.IsSuperseded -eq $true){
                    #さらに置き換える更新をチェック
                    $upperSupersedUpdates = chkSupersededUpdatesApproval($superUpdate)
                    if($upperSupersedUpdates -eq $true){
                        return $true
                    }
                }
            }
        }    
    }
    return $false
}
$WSUS = Get-WsusServer
$updates = $WSUS.GetUpdates()
$declineCnt=0
$notApprovalCnt=0
foreach($update in $updates.Where({$_.IsDeclined -ne $true -and $_.IsSuperseded -eq $true})){
    Write-Host ('「'+$update.Title+'」は置き換える更新があります。')
    #拒否されてなくて置き換える更新プログラムがある
    $chk = chkSupersededUpdatesApproval($update)
    if($chk -eq $true){
        #$update.Decline()
        Write-Host ('@「'+$update.Title+'」を拒否しました。')
        $declineCnt++
    }else{
        Write-Host '!置き換える更新が未承認です'
        $notApprovalCnt++
    }
}
Write-Host ($declineCnt.ToString()+'個の更新を拒否しました')
Write-Host ($notApprovalCnt.ToString()+'個の更新は置き換える更新が承認されていません')

WSUSのクリーンアップウィザードのチェックを全て入れて実行。
そのあとすぐに実行しても、もちろん何も変わらない

スクリーンショット 2024-06-21 161556.png

そのあとこのクリプトを実行

スクリーンショット 2024-06-21 162139.png

823個の更新を未承認状態出来た。

そしてまた、クリーンアップウィザードを実行すると。

スクリーンショット 2024-06-21 162305.png

152689MB(149GB)減った。

使用容量の変化はこんなん。

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0