Est-il possible d'installer des mises à jour Windows à partir de la ligne de commande? L'outil de mise à jour graphique ne semble pas si bien fonctionner sous Windows 7. Parfois, parfois non ... Mon problème est que je ne vois aucune mise à jour lorsque je clique pour voir la liste des détails. Donc, quand il y a des mises à jour qui ne sont pas cochées par défaut, je ne peux pas les installer ...
Alors, existe-t-il un autre moyen de les installer?
Vous n'êtes pas sûr de Windows 7, mais avec XP/Vista, vous pouvez exécuter la commande suivante pour détecter et télécharger les mises à jour:
wuauclt /detectnow /reportnow
Si vous rencontrez des problèmes pour le faire fonctionner, consultez le Wiki WSUS .
Sinon, si vous avez une mise à jour spécifique que vous souhaitez, téléchargez-la simplement sur le site Web de Microsoft. S'il y a un problème vous empêchant d'installer, c'est la meilleure façon de le savoir, car les journaux de Windows Update sont illicites à gérer.
Vous pouvez utiliser un script pour rechercher, télécharger et installer les mises à jour de manière synchrone. J'utilise souvent une version modifiée de ce vbscript pour les correctifs manuels des serveurs Windows Core.
Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "MSDN Sample Script"
Set updateSearcher = updateSession.CreateUpdateSearcher()
WScript.Echo "Searching for updates..." & vbCRLF
Set searchResult = _
updateSearcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")
WScript.Echo "List of applicable items on the machine:"
For I = 0 To searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
WScript.Echo I + 1 & "> " & update.Title
Next
If searchResult.Updates.Count = 0 Then
WScript.Echo "There are no applicable updates."
WScript.Quit
End If
WScript.Echo vbCRLF & "Creating collection of updates to download:"
Set updatesToDownload = CreateObject("Microsoft.Update.UpdateColl")
For I = 0 to searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
addThisUpdate = false
If update.InstallationBehavior.CanRequestUserInput = true Then
WScript.Echo I + 1 & "> skipping: " & update.Title & _
" because it requires user input"
Else
If update.EulaAccepted = false Then
WScript.Echo I + 1 & "> note: " & update.Title & _
" has a license agreement that must be accepted:"
WScript.Echo update.EulaText
WScript.Echo "Do you accept this license agreement? (Y/N)"
strInput = WScript.StdIn.Readline
WScript.Echo
If (strInput = "Y" or strInput = "y") Then
update.AcceptEula()
addThisUpdate = true
Else
WScript.Echo I + 1 & "> skipping: " & update.Title & _
" because the license agreement was declined"
End If
Else
addThisUpdate = true
End If
End If
If addThisUpdate = true Then
WScript.Echo I + 1 & "> adding: " & update.Title
updatesToDownload.Add(update)
End If
Next
If updatesToDownload.Count = 0 Then
WScript.Echo "All applicable updates were skipped."
WScript.Quit
End If
WScript.Echo vbCRLF & "Downloading updates..."
Set downloader = updateSession.CreateUpdateDownloader()
downloader.Updates = updatesToDownload
downloader.Download()
Set updatesToInstall = CreateObject("Microsoft.Update.UpdateColl")
rebootMayBeRequired = false
WScript.Echo vbCRLF & "Successfully downloaded updates:"
For I = 0 To searchResult.Updates.Count-1
set update = searchResult.Updates.Item(I)
If update.IsDownloaded = true Then
WScript.Echo I + 1 & "> " & update.Title
updatesToInstall.Add(update)
If update.InstallationBehavior.RebootBehavior > 0 Then
rebootMayBeRequired = true
End If
End If
Next
If updatesToInstall.Count = 0 Then
WScript.Echo "No updates were successfully downloaded."
WScript.Quit
End If
If rebootMayBeRequired = true Then
WScript.Echo vbCRLF & "These updates may require a reboot."
End If
WScript.Echo vbCRLF & "Would you like to install updates now? (Y/N)"
strInput = WScript.StdIn.Readline
WScript.Echo
If (strInput = "Y" or strInput = "y") Then
WScript.Echo "Installing updates..."
Set installer = updateSession.CreateUpdateInstaller()
installer.Updates = updatesToInstall
Set installationResult = installer.Install()
'Output results of install
WScript.Echo "Installation Result: " & _
installationResult.ResultCode
WScript.Echo "Reboot Required: " & _
installationResult.RebootRequired & vbCRLF
WScript.Echo "Listing of updates installed " & _
"and individual installation results:"
For I = 0 to updatesToInstall.Count - 1
WScript.Echo I + 1 & "> " & _
updatesToInstall.Item(i).Title & _
": " & installationResult.GetUpdateResult(i).ResultCode
Next
End If
Cela semble fonctionner comme un charme pour cela, mais je ne l'ai pas testé sous Windows 7 bien sûr. Il existe également un lien vers un autre article pour cibler une mise à jour spécifique si nécessaire.
Il y a aussi n module Powershell qui expose une expérience similaire.
Après un rapide coup d'œil, j'ai également trouvé cette application tierce qui utilise également l'API de mise à jour, mais avec quelques options supplémentaires (mais vous obligeant à faire confiance au code tiers).
Windows Update à partir de la ligne de commande:
www.sysadminsoftware.com/udc.html
L'outil (Updates Deployment Commander) peut faire exactement ce que vous demandez. Vous pouvez également transmettre des paramètres pour éviter certains correctifs, cibler des mises à jour spécifiques, redémarrer N minutes après la fin, créer des rapports dans CSV, etc.
Si vous devez patcher les systèmes d'exploitation Windows, en particulier après de nouvelles installations, jetez un œil sérieux à Offline Updater .
Il utilise des scripts pour télécharger tous les correctifs que vous proposez (donc Win2000, Win XP, Win 2003, Vista, Win2008, Win2012 32 et 64 bits le cas échéant), multilingue, service packs, frameworks .NET et correctifs Office (XP, 2000 , 2003, 2007).
Une fois que vous les avez tous téléchargés, il vous suffit de mettre à jour chaque correctif mardi et d'obtenir uniquement les modifications. Bien qu'il obtienne les catalogues et qu'ils s'allongent de jour en jour (plusieurs mégas maintenant par OS/Office rev).
Une fois que vous avez téléchargé les fichiers sur votre machine locale, il existe un script pour en faire des images CD/DVD (il le fera automatiquement pour les images DVD par OS maintenant si vous le souhaitez).
Ce que je fais, c'est utiliser une carte mémoire SD de 4 Go, dans un lecteur de carte SD qui respecte l'onglet de protection en écriture. J'avais l'habitude d'utiliser des cartes de 2 Go, mais je peux à peine s'adapter à Win XP et la plupart des versions d'Office en dépendent maintenant, alors je suis passé à des cartes de 4 Go.
Ainsi, lors du dépannage d'une machine, je fais confiance à l'insertion de cet appareil auparavant accessible en écriture dans une machine non fiable, potentiellement infectée par un virus (car je n'en sais rien, je suppose qu'il est infecté) sachant que mon appareil est protégé en écriture.
Ainsi, je peux le mettre à jour dans un premier temps.
Si vous utilisez l'exécution automatique ou lancez l'exécutable sur l'appareil (clé, disque dur externe, CD, DVD, où que vous l'ayez écrit), il démarre un script qui utilise le service Windows Update sur la machine locale pour appliquer toutes les mises à jour, mais à la place de traverser le fil pour les télécharger, il utilise simplement la copie locale.
Ainsi, la mise à jour d'une machine WinXP vers la dernière version SP et correctifs) peut prendre plus de 1 heure, mais il n'y a aucun trafic réseau en cours de route, et vous pouvez le faire avec le câble Ethernet entièrement débranché. .
Outil incroyablement utile!
Ne devrait pas aller à l'encontre de Microsoft, comme les gars d'AutoUpdate, qui préparaient un CD de correctifs, qui distribuaient l'image du CD. Cet outil met à jour les scripts et vous devez aller chercher tous les correctifs sur votre poste de travail Windows sous licence.
Je ne peux pas actuellement ajouter de commentaire à la réponse par duffbeer7 , alors voici une réponse distincte:
La dernière "bonne" version du lien vers WSUSwiki archivée sur Internet Archive est this . Les options données dans la réponse d'origine sont décrites dans cette entrée FAQ .