17 votos

Cómo instalar las Actualizaciones de Windows desde la línea de comandos

Es posible instalar las actualizaciones de windows desde la línea de comandos? La representación gráfica de la herramienta de actualización no parece funcionar tan bien en Windows 7. A veces sí, a veces no... Mi problema es que yo no puedo ver ninguna de las actualizaciones cuando hago clic para ver los detalles de la lista. Así que, cuando hay actualizaciones que no están marcados por defecto, yo no lo puedo instalar...

Así que, ¿hay otra forma puedo conseguir esas instalado?

12voto

duffbeer703 Puntos9747

No estoy seguro acerca de Windows 7, pero con XP/Vista, puede ejecutar el siguiente comando para detectar y descargar las actualizaciones:

wuauclt /detectnow /reportnow

Si usted tiene problemas para conseguir que funcione, retirar el WSUS Wiki.

De lo contrario, si usted tiene una actualización específica que usted desea, sólo tiene que descargar desde el sitio web de Microsoft. Si hay algún problema que le impide la instalación, que es la mejor manera de encontrar, porque la Actualización de Windows registros de godawful a tratar.

4voto

Guy Puntos16718

Puede utilizar una secuencia de comandos para comprobar, descargar e instalar actualizaciones de forma sincrónica. Yo a menudo utilizan una versión modificada de este vbscript para el manual de aplicación de parches de Windows Core servidores.

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

Parece que funciona como un encanto, pero no lo he probado en Windows 7 de curso. También hay un enlace a otro artículo para la orientación de una actualización específica si es necesario.

También hay un módulo de Powershell que expone una experiencia similar.

Después de un rápido vistazo también encontré esta aplicación de terceros que utiliza también la actualización de la API, pero con algunas opciones más (a pesar de que requieren que la confianza de código de terceros).

2voto

Chris Bunch Puntos25857

Si usted tiene a la revisión de los sistemas operativos Windows, proximidades después de nuevas instalaciones, tomar una mirada seria a Offline Updater: http://www.h-online.com/security/Offline-Update--/features/112953

Se utiliza secuencias de comandos para descargar todos los parches que se sugieren (por lo Win2000, Win XP, Win 2003, Vista y Win2008 de 32 y 64 bits cuando sea apropiado), multi idioma, los service packs .NET frameworks, y de la Oficina de parches (XP, 2000, 2003, 2007).

Una vez que los tengas todos descargados, acabo de actualizar cada revisión del martes, y obtener sólo los cambios. A pesar de no obtener la catalouges y que están recibiendo más cada día (muchos megas ahora por OS/Oficina rev).

Una vez que tengas los archivos en su máquina local descargado, hay un script para hacer imágenes de CD/DVD de ellos (que de esto automáticamente para imágenes de DVD por OS ahora si le gustaría).

Yo lo que hago es usar una SD de 4GB tarjeta de memoria en un lector de tarjetas SD, que honra la pestaña de protección contra escritura. Yo solía usar tarjetas de 2GB, pero yo apenas puede caber Win XP y la mayoría de los de la Oficina se basa en el ahora, así que me mudé a tarjetas de 4GB.

Así, cuando la solución de problemas de una máquina, confío en la inserción de este conocido de escritura del dispositivo en una que no es de confianza, posiblemente infectados con el virus de la máquina (ya que yo no sé nada al respecto, supongo que está infectado) sabiendo que mi dispositivo está protegido contra escritura.

Por lo tanto, puedo parche hasta la fecha como un primer paso.

Si utiliza la función de ejecución automática, o lanzar el ejecutable en el dispositivo (clave, HD externo, CD, DVD, dondequiera que usted lo escribió) que se inicia una secuencia de comandos que utiliza el servicio de Actualización de Windows en la máquina local para aplicar todas las actualizaciones, pero en lugar de ir a través de la red para descargar, que sólo utiliza la copia local.

Por lo tanto se puede tomar 1+ horas para actualizar un WinXP máquina a la última SP y parches, pero no es cero el tráfico de la red a lo largo del camino, y se puede hacer con el cable Ethernet desconectado totalmente.

Increíblemente útil de la herramienta!

No debe ir en contra de Microsoft, como el AutoUpdate chicos estaban, que previamente a la construcción de un parche de CD, que se distribuyen de la imagen de CD. Esto actualizaciones de la herramienta de secuencias de comandos, y usted tiene que ir a buscar todos los parches en su licencia de estación de trabajo de Windows.

2voto

sysadmin Puntos11

Actualización de Windows desde la Línea de Comandos:

www.sysadminsoftware.com/udc.html

La herramienta (la Implementación de Actualizaciones de Comandante) solo pueden hacer lo que usted está pidiendo. También se puede pasar parámetros a evitar ciertos parches, objetivo específico actualizaciones, reinicie N minutos después de completar, crear informes en formato CSV, y así sucesivamente.. Viene con un par de GUI utilidades.

-2voto

WerkkreW Puntos4212

No lo creo así, Windows Update requiere algunos ActiveX y otros de integración con Internet Explorer para que funcione correctamente.

Puesto que Windows 7 es hoy apenas una release candidate, usted debe esperar que estos tipos de errores.

Podría ser prudente para presentar el error específico que usted está teniendo para el equipo de desarrollo si usted es un miembro de MSDN.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: