Windows

WSUS 驅動程序取代

  • September 17, 2021

我在 wsus 中添加了驅動程序分類,現在我有 100k 驅動程序更新。沒有指定取代,所以我不能輕易拒絕舊更新。我看到很多驅動程序的重複版本(更新 id 不同,所以它不是同一個更新)。

在過去,這很糟糕,但自從我添加了 Windows 10 後,它幾乎無法管理。

  • 微軟沒有聘請腳本小子來糾正驅動程序的取代,這是真的嗎?
  • 具有相同版本號和其他詳細資訊的驅動程序是否相同?還是有一些細微的差別?

當然,我不能自動批准司機並手動😠 只批准需要的司機並拒絕舊的司機。我什至可以正則表達式輸出版本號並使用 powershell 來批准最新版本。或者更新 wsus 數據庫,使其正確。但那是微軟的工作。

或者我在這裡錯過了什麼?如果我需要製作一些 powershell 腳本,我會在這里分享,不用擔心。

再次按下錯誤的按鈕,製作腳本現在拒絕(使用風險自負)

$WSUS = Get-WsusServer
$FPClass = $WSUS.GetUpdateClassifications()|Where{$_.Title -eq 'Drivers'}
$u = $FPClass.GetUpdates()

# extract version
$u1 = $u |% {
   $x = $_.title -match "^(.*) (.*)$";
   [pscustomobject]@{
       "id"=$_.id;
       "v"=[version]$matches[2];
       "n"=$matches[1];
   }
}

# get max version
$u2 = $u1 |
Sort-Object -Property v | group n |%{
[PSCustomObject]@{
    n = $_.name;
    v = ($_.Group | Sort-Object v | select -Last 1 -Property v).v; 
}}

# do decline
$u1 |% {
   $x = $_;
   [PSCustomObject]@{   
       "id"=$_.id;
       "v1"=$_.v;
       "n" = $_.n;
       "v2"=($u2 |? { $_.n -eq $x.n }).v;
   }
} |? { $_.v1 -ne $_.v2} |% {
   Deny-WsusUpdate -Update (Get-WsusUpdate -UpdateId $_.id.UpdateId);
   $_;
}

引用自:https://serverfault.com/questions/1069688