Remédiation Windows Update v2

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Remédiation Windows Update v2

Message par ForumBot »

Remédiation Windows Update v2

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Remédiation Windows Update v2

Message par ayi »

C’est un excellent script ! Seulement il semble que le script de détection ne vérifie que le « dernier correctif installé » mais ne différencie pas entre les mises à jour .NET et les mises à jour cumulatives Windows. J’ai remarqué que le correctif .NET pourrait marquer la détection comme réussie sans remédiation, même si la dernière mise à jour cumulative Windows n’est pas installée.

J’ai ajouté un petit ajustement ci-dessous pour filtrer spécifiquement les mises à jour cumulatives.


# --- Minimum required builds ---
$MinWin10Build = 19045 # Windows 10 22H2
$MinWin11Build = 26100 # Windows 11 24H2

# --- Get OS version ---
$OSversion = [Version](Get-ComputerInfo -Property OsVersion).OsVersion
Write-Output "Detected OS version: $OSversion"

# --- Initialize compliance flags ---
$OSCompliant = $false
$CUCompliant = $false
$Reasons = @()

# --- Check OS compliance ---
if ($OSversion.Build -lt 22000) { # Windows 10
if ($OSversion.Build -ge $MinWin10Build) {
$OSCompliant = $true
} else {
$Reasons += "OS version below minimum required ($OSversion)"
}
} else { # Windows 11
if ($OSversion.Build -ge $MinWin11Build) {
$OSCompliant = $true
} else {
$Reasons += "OS version below minimum required ($OSversion)"
}
}

# --- Determine last Monthly (B) CU ---
$daysCU = $null
$timeout = [DateTime]::Now.AddMinutes(5)

do {
try {
$lastupdate = Get-HotFix |
Where-Object {
$_.HotFixID -match '^KB5\d{6,}$' -and
$_.Description -match 'Security Update'
} |
Sort-Object -Property InstalledOn |
Select-Object -Last 1 -ExpandProperty InstalledOn

if ($lastupdate) {
$daysCU = (New-TimeSpan -Start $lastupdate -End (Get-Date)).Days
}
}
catch {
$Reason

(Réponse tronquée)

Répondre

Revenir à « Performance & Dépannage »