Mise à jour programmée de Windows 1

Mise à jour programmée de Windows

Je ne sais pas si vous avez la même expérience que moi mais les mises à jour automatiques de Windows, pourtant programmées le lundi à 3:00, ont parfois tendance à s’exécuter n’importe quand. Du coup, la tentation est grande de les désactiver en se disant qu’on les fera plus tard à la main ou qu’on mettra en place un serveur WSUS (floscel 😉 )

J’ai trouvé sur le net un petit script Powershell sympa qui se charge de les télécharger, installer et au besoin relancer le serveur. Du coup, il ne reste plus qu’à le programmer  à l’heure qui convient.

cls$listonly=$true$allowreboot=$truefunctionGet-WIAStatusValue($value)
{
   switch-exact ($value)
   {
      0   {"NotStarted"}
      1   {"InProgress"}
      2   {"Succeeded"}
      3   {"SucceededWithErrors"}
      4   {"Failed"}
      5   {"Aborted"}
   }
}

$needsReboot=$false$UpdateSession=New-Object-ComObjectMicrosoft.Update.Session$UpdateSearcher=$UpdateSession.CreateUpdateSearcher()

Write-Host" - Rercherche de mises à jour"$SearchResult=$UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0")

Write-Host" - Trouvé [$($SearchResult.Updates.count)] mises à jour à télécharger et installer"Write-Hostforeach($Updatein$SearchResult.Updates)
{
   # Add Update to Collection$UpdatesCollection=New-Object-ComObjectMicrosoft.Update.UpdateCollif ( $Update.EulaAccepted -eq0 ) { $Update.AcceptEula() }
   $UpdatesCollection.Add($Update) | out-nullWrite-Host" + $($Update.Title)"if ($listonly-ne$true)
   {

   # DownloadWrite-Host" ++ Téléchargement"$UpdatesDownloader=$UpdateSession.CreateUpdateDownloader()
   $UpdatesDownloader.Updates =$UpdatesCollection$DownloadResult=$UpdatesDownloader.Download()
   $Message="   - Téléchargement {0}"-f (Get-WIAStatusValue$DownloadResult.ResultCode)
   Write-Host$message# InstallWrite-Host"   ++ Installation"$UpdatesInstaller=$UpdateSession.CreateUpdateInstaller()
   $UpdatesInstaller.Updates =$UpdatesCollection$InstallResult=$UpdatesInstaller.Install()
   $Message="   - Installation {0}"-f (Get-WIAStatusValue$DownloadResult.ResultCode)
   Write-Host$messageWrite-Hostif ($allowreboot-eq$true)
   {
       $needsReboot=$installResult.rebootRequired
   }
   }
}

if($needsReboot)
{
    restart-computer
}

A propos Olivier Olejniczak

Cofondateur de SynerGeek.fr. Passionné d'informatique, je m'intéresse plus particulièrement aux technologies de virtualisation et de stockage. J'apprécie la liberté et la quasi-absence de frontières à mon imagination qu'offre l'OpenSource et Linux. Professionnellement, je travaille exclusivement avec les outils Microsoft. Les pieds bien sur terre et ancrés dans le quotidien de l'entreprise, j'aime faire partager mes découvertes et contribuer à un meilleur usage des technologies. Vous aussi, rejoignez-nous sur Synergeek et partagez votre expérience!

Je vous propose également...

[Interview] Martial Auroy, professionnel du monde Microsoft 2

[Interview] Martial Auroy, professionnel du monde Microsoft

Interview avec Martial Auroy, chef d'entreprise d'un centre de formation spécialisé Microsoft Office 365 en Normandie.

Mettre à jour la version DSM sur Xpenology 3

Mettre à jour la version DSM sur Xpenology

Pour être totalement à jour, rien de mieux que la dernière version de DSM. Oui, …

2 commentaires

  1. Question…. il paraît que wsus va disparaître, quand ? et quelle solution pour remplacer ce genre d’outils ?

  2. Un WSUS n’est pas si difficile à mettre en place et cela permet quand même de mieux contrôler les MAJ et surtout d’économiser de la bande passante.

    D’ailleurs, on parle de plus en plus du “puissant coquillage” sur Synergeek, il serait peut être intéressant de faire un article sur l’utilisation de ces scripts.. Comment les implémenter etc… Ca intéresse quelqu’un ? Olivier ? Aurélien ?