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...

Mettre à jour la version DSM sur Xpenology

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

Microsoft SQL 2014 est sorti !

Microsoft sort sa dernière version de SQL Server, alors quoi de neuf au niveau des améliorations et la gestion des licences.

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 ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.