¿Cómo fuerzo a Windows a buscar actualizaciones?

25

Después de una nueva instalación de Windows, XP o 7, ¿cómo puedo "forzar" las actualizaciones de Windows?

No quiero tener actualizaciones "antiguas" de Windows después de una semana, ¿podría hacerse en "un paso"? ¿Hay comandos "mágicos" que obliguen a Windows a buscar actualizaciones y, si hay alguna, instalarlas?

LanceBaynes
fuente

Respuestas:

12

Puede buscar e instalar actualizaciones automáticamente mediante un script. Esto funcionará en XP o Windows 7.

Hay varios scripts disponibles para descargar, aquí está el mío :

' Written in 2007 by Harry Johnston, University of Waikato, New Zealand.
' This code has been placed in the public domain.  It may be freely
' used, modified, and distributed.  However it is provided with no
' warranty, either express or implied.
'
' Exit Codes:
'   0 = scripting failure
'   1 = error obtaining or installing updates
'   2 = installation successful, no further updates to install
'   3 = reboot needed; rerun script after reboot
'
' Note that exit code 0 has to indicate failure because that is what
' is returned if a scripting error is raised.
'

Set updateSession = CreateObject("Microsoft.Update.Session")

Set updateSearcher = updateSession.CreateUpdateSearcher()
Set updateDownloader = updateSession.CreateUpdateDownloader()
Set updateInstaller = updateSession.CreateUpdateInstaller()

Do

  WScript.Echo
  WScript.Echo "Searching for approved updates ..."
  WScript.Echo

  Set updateSearch = updateSearcher.Search("IsInstalled=0")

  If updateSearch.ResultCode <> 2 Then

    WScript.Echo "Search failed with result code", updateSearch.ResultCode
    WScript.Quit 1

  End If

  If updateSearch.Updates.Count = 0 Then

    WScript.Echo "There are no updates to install."
    WScript.Quit 2

  End If

  Set updateList = updateSearch.Updates

  For I = 0 to updateSearch.Updates.Count - 1

    Set update = updateList.Item(I)

    WScript.Echo "Update found:", update.Title

  Next

  WScript.Echo

  updateDownloader.Updates = updateList
  updateDownloader.Priority = 3

  Set downloadResult = updateDownloader.Download()

  If downloadResult.ResultCode <> 2 Then

    WScript.Echo "Download failed with result code", downloadResult.ResultCode
    WScript.Echo

    WScript.Quit 1

  End If

  WScript.Echo "Download complete.  Installing updates ..."
  WScript.Echo

  updateInstaller.Updates = updateList

  Set installationResult = updateInstaller.Install()

  If installationResult.ResultCode <> 2 Then

    WScript.Echo "Installation failed with result code", installationResult.ResultCode

    For I = 0 to updateList.Count - 1

      Set updateInstallationResult = installationResult.GetUpdateResult(I)
      WScript.Echo "Result for " & updateList.Item(I).Title & " is " & installationResult.GetUpdateResult(I).ResultCode

    Next

    WScript.Quit 1

  End If

  If installationResult.RebootRequired Then

    WScript.Echo "The system must be rebooted to complete installation."

    WScript.Quit 3

  End If

  WScript.Echo "Installation complete."

Loop 

Ejecuta esto desde la línea de comando así:

cscript wsusupdate.vbs

Mi script solo es mínimamente funcional pero aún puede ser útil. Hay otros scripts disponibles con muchas características adicionales, intente una búsqueda en Google.

Harry Johnston
fuente
¡Voy a probar este! Mientras tanto, ¿alguien tiene alguna experiencia con este script?
LanceBaynes
Este script sale con <59, 3> <null>: 0x80240044. ¿Alguna idea de por qué esto falla? Intenté buscar los métodos a los que hace referencia, pero no pude entender qué está sucediendo. ¿Me puede apuntar en la dirección correcta?
daviesgeek
@daviesgeek: 0x80240044 es WU_E_PER_MACHINE_UPDATE_ACCESS_DENIED , es decir, debe ejecutar el script con permisos elevados.
Harry Johnston
Ah gracias. ¿Cómo elevaría los permisos desde la línea de comando? (lo siento, soy un gurú de Linux, no una persona de Windows ...)
daviesgeek
1
Vista / Win7: abra el menú Inicio, escriba cmd y presione control-shift-ENTER en lugar de solo ENTER. En Windows 8, creo que la tecla de acceso directo de Windows-X muestra un menú que incluye una línea de comando administrativo. O en cualquiera de los sistemas puede encontrar cmd.exe a través del Explorador, haga clic con el botón derecho y seleccione Ejecutar como administrador.
Harry Johnston
41

Más allá de la forma habitual de usar Windows Update, puede forzar una verificación desde una línea de comandos.

Abra un símbolo del sistema del administrador y ejecute:

C:\> %windir%\system32\wuauclt.exe /detectnow

Wuauclt.exe es el cliente de actualización automática de Windows Update y se utiliza para verificar las actualizaciones disponibles (para las diversas versiones de la plataforma MS Windows) de Microsoft Update.

Esto no forzará una instalación.

Ƭᴇcʜιᴇ007
fuente
1
Solo para agregar: esto funciona en XP, Vista y 7 también
Canadian Luke REINSTATE MONICA
@Luke También funciona para Windows 2000 SP4. :)
Ƭᴇcʜιᴇ007
1
Sin embargo, para una instalación nueva, es mejor que compruebe si hay actualizaciones a través de la GUI (para Windows Vista +) o el sitio web de Windows Update (Pre-Vista). Creo que esto dará mayor prioridad al proceso de descarga. Por defecto, los BITS solo descargarán una actualización cuando la conexión de red no esté ocupada.
billc.cn
2
Una versión abreviada sería la tecla de Windows + R y luego escriba wuauclt / detectnow y luego presione Intro.
Steve Rathbone
5

Para buscar actualizaciones, vaya al Panel de control, Seguridad, Actualización de Windows, luego haga clic en "Buscar actualizaciones".

ingrese la descripción de la imagen aquí

surfasb
fuente
y en winXP? :)
LanceBaynes
En Windows XP, presione Inicio-> Todos los programas -> (Windows | Microsoft) Actualizar y realice una búsqueda automática o manual.
Jens Erat
1
Esto no es para winXP
M. de CA
2

Otra forma de forzar un verdadero reescaneo de actualizaciones es limpiar la pizarra, eliminando todas las actualizaciones almacenadas en % windir% \ Windows \ SoftwareDistribution \ Download :

    NET STOP wuauserv
    RD /S /Q %windir%\SoftwareDistribution\Download
    NET START wuauserv

Luego vaya a Windows Update y "Buscar actualizaciones". Puede llevar una hora, ya que se verifica cada archivo actualizable en el volumen de su sistema (las "Verificaciones de actualizaciones" posteriores serán rápidas). Este enfoque elimina errores, actualizaciones fallidas y proporciona un sistema limpio y actualizado, al menos en la medida en que MS lo vea.

rajah
fuente
Gracias, gran respuesta! Estaba buscando algo más contundente que las otras respuestas. Mi instalación de Windows 10 está fallida de alguna manera, y las actualizaciones ya no parecen venir. Necesito forzarlo a actualizar, espero que esto funcione.
AzP
1

Estoy usando una herramienta de terceros llamada wuinstall para actualizar la instalación de Windows. con eso puede automatizar todo el proceso de actualización, incluidos los reinicios automáticos. Creo que es una de las formas más rápidas de actualizar ventanas nuevas sin la asistencia del usuario.

hansi
fuente
0

Descubrí que si, como parte de su nueva instalación en Windows 7, actualizó IE o aún no ha ejecutado IE y respondió las preguntas introductorias, esa actualización de Windows le dará un error. Tampoco he encontrado una manera de cambiar Windows Update a Microsoft Update sin pasar por la GUI, así que enciendo manualmente IE, lo inicializo y luego configuro Windows Update a través de la GUI, para que pueda cambiar a Microsoft Update y evitar el error inicial Su experiencia puede ser diferente.

Kent
fuente
0

Tuve éxito siguiendo los pasos de esta publicación , instalando IE8 y WI4.5 , activará actualizaciones automáticas para iniciar las descargas.

suma de comprobación
fuente