locked
Desplegar SP3 en Windows XP RRS feed

  • Pregunta

  • Hola a todos.

    Necesito desplegar el Service Pack 3 de Windows Xp a la mayoría de equipos de mi organización (la mayor parte de los equipos todavia tienen Sevice Pack 2), ya que estamos instalando un nuevo producto que requiere la instalación de este Service Pack. Actualmente, distribuimos  las actualizaciones a traves de SUS, pero implementar el SP3 mediante SUS creo que no va a ser una buena solución. Entiendo que durante la instalación de este service pack los usuarios pueden experimentar fallos en las aplicaciones que estén usando y el tiempo de instalación de forma manual tarda como una hora. Tampoco sería factible instalar el SP3 de forma manual en todos los equipos.

    La idea sería implementar el service pack por la noche, que los usuarios dejaran el ordenador en marcha cuando terminaran de trabajar y que al día siguiente estuvieran los equipos actualizados, con el service pack y con las actualizaciones adicionales.

    ¿Podriais darme  vuestra opinión de como implementarlo? Gracias.

    Saludos.

    sábado, 20 de noviembre de 2010 16:18

Respuestas

  • Hola a todos.
    Os doy las gracias por la ayuda y el interes. Al final he podido resolver el problema de la siguiente manera.Lo explico detallado por si a alguien le pudiera interesar.
    Primero de todo explicaré un poco como está formada nuestra infraestructura para que se pueda entender mejor el funcionamiento de la solución. 
    - Contamos con un CPD y unas 80 delegaciones conectadas todas ellas con túneles VPN/IP de telefónica, formando  entre todas una red local a velocidad de internet.
    - Cada una de las delegaciones cuenta con un servidor de Ficheros, impresoras, DHCP, backups, etc… y con una carpeta compartida con el mismo nombre en todos los servidores.
    - Todos los usuarios de la organización, tienen mapeada una unidad con la letra F que mapea la carpeta compartida del servidor de la delegación donde trabaja . Este mapeo se crea a través de un script de inicio de sesión.
    El objetivo de todo este proceso, es que se configure una tarea programada de forma desatendida cuando el usuario inicie la sesión, y  que esta tarea instale el Service Pack 3 a los equipos con Windows Xp Sp2 por la noche.
    Primero, se ha descargado el SP3 y se ha distribuido desde el CPD a todos los servidores de las delegaciones, grabando el archivo en la carpeta compartida del servidor de delegación. Este proceso se ha realizado con un programa llamado Viceversa, que entre otras cosas replica ficheros desde un mismo origen a diferentes destinos de forma programada.
    Una vez distribuido, se ha creado una directiva de grupo en el directorio activo con scripts de inicio de sesión que se aplican a todos los usuarios y equipos del dominio. A la directiva se le ha aplicado un filtro VMI para que el script solo afecte a los equipos que tienen Windows Xp SP2:
           Filtro  VMI:
     Espacio de nombres: root\CIMv2
    Consulta: Select * FROM Win32_OperatingSystem WHERE Caption="Microsoft Windows XP Professional" AND CSDVersion="Service Pack 2"
     A continuación, describo los script:
    - El primero, configura las opciones de energía de los equipos para que no se apaguen cuando están funcionando con corriente alterna. La mayor parte de los equipos son portátiles, y por defecto pasan a estado de inactividad después de un determinado tiempo sin hacerlo servir. Este script es un archivo bat:

    C:\WINDOWS\system32\powercfg.exe /create "SiempreEncendidoConAC"
    C:\WINDOWS\system32\powercfg.exe /setactive "SiempreEncendidoConAC"
    C:\WINDOWS\system32\powercfg.exe /change "SiempreEncendidoConAC" /monitor-timeout-ac 15
    C:\WINDOWS\system32\powercfg.exe /change "SiempreEncendidoConAC" /disk-timeout-ac 00
    C:\WINDOWS\system32\powercfg.exe /change "SiempreEncendidoConAC" /standby-timeout-ac 00

    - El Segundo, creado en visual basic script, determina la ruta UNC de la unidad mapeada F del usuario:

    option explicit

    Dim objNetwork
    Dim colDrives
    Dim i
    Dim RutaSP3
    Dim objFSO
    Dim objFile
    Dim WshShell

    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run("C:\WINDOWS\system32\regsvr32.exe \\dominio.local\NETLOGON\SP3Task\scrrun.dll /s") ‘Este commando registra la libreria scrrun.dll, ya que algunos equipos daban error al ejecutar el script.
    WScript.Sleep(30000) ‘Delay de 30 segundos para que dé tiempo a cargar las unidades mapeadas.

    Const ForWriting = 2
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.CreateTextFile("C:\Temp\RutaSP3.txt", ForWriting)’ Para crear un archivo de texto con la ruta UNC donde se encuentra el SP3 para procesarlo posteriormente.
    Set objNetwork = WScript.CreateObject("WScript.Network")
    Set colDrives = objNetwork.EnumNetworkDrives

        For i = 0 to colDrives.Count-1 Step 2
     if colDrives.Item(i) = "F:" Then
      objFile.WriteLine colDrives.Item (i + 1) & "\WXpSP3\WindowsXP-KB936929-SP3-x86-ESN.exe"
     End If
        Next
    objFile.Close
    ‘Ya tenemos la ruta al SP3. El contenido del fichero C:\Temp\RutaSP3.txt será parecido a                                                ‘                    \\Servidor_delegación\WXpSP3\WindowsXP-KB936929-SP3-x86-ESN.exe
    ‘Ahora, se llama al tercer script para que programe una tarea
    WshShell.Run("\\dominio.local\NETLOGON\SP3Task\TaskSP3.exe") ‘Ejecuta el tercer script.
    - El tercer script está realizado en bat, aunque como es necesario que lleve un usuario y un password para crear la tarea programada se ha compilado en exe:

    @echo off

    Rem Extrae el contenido del fichero c:\temp\RutaSP3.txt y lo asigna a la variable RutaSP3.
    setlocal enabledelayedexpansion
    :reader
    set c=0
    for /f "tokens=*" %%a in (c:\temp\RutaSP3.txt) do (
          set /a c+=1
          call set lin!c!= %%a
    )
    for /l %%n in (1,1,!c!) do (set RutaSP3=!lin%%n!)

    Rem Borra la tarea ServicePack3 en caso de que se haya programado anteriormente.
    c:\windows\system32\schtasks.exe /delete /s 127.0.0.1 /u dominio\administrador /p password /tn ServicePack3 /f

    Rem Crea la tarea programada ServicePack3 para ejecutar el archivo que contiene la variable RutaSP3 con parametros de instalación añadidos.
    c:\windows\system32\schtasks.exe /create /s 127.0.0.1 /u dominio\administrador /p password /sc once /tn ServicePack3 /tr "%RutaSP3% /passive /forcerestart /overwriteoem /nobackup" /st 22:00:00

    Rem Asigna permisos para ejecutar la tarea
    c:\windows\system32\schtasks /change /ru dominio\administrador /rp password /tn ServicePack3

    Rem Borra el fichero con la ruta al SP3.
    del C:\Temp\RutaSP3.txt

    rem Genera un log con la tarea programada
     set t=%time%
     set f=%date%
     set d=** %f% - %t%. Se Ha programado la tarea ServicePack3 a traves de %RutaSP3%
     echo %d% >>c:\Temp\TaskSP3.txt
     
    Rem Informa al usuario para que deje el ordenador encendido por la noche y pueda actualizarse el equipo
    cls
    echo Este es un mensaje del departamento Informatico.
    echo.
    echo **************************************************************
    echo *** ATENCION - SU EQUIPO NO ESTA CORRECTAMENTE ACTUALIZADO ***
    echo **************************************************************
    echo.
    echo Para que su equipo funcione correctamente, es necesario aplicar
    echo una actualizacion.
    echo Esta actualizacion se instalara automaticamente. Para que se
    echo pueda instalar, debe dejar el ordenador encendido POR LA NOCHE
    echo EN LA DELEGACION.
    echo.
    echo Este mensaje seguira saliendo hasta que su equipo este actu-
    echo alizado. Si usted ha dejado el ordenador encendido por la noche
    echo durante 2 o 3 dias y el mensaje sigue saliendo, debera comunicarse
    echo con el departamento informatico para que procedamos a actualizar el
    echo equipo de forma manual.
    echo.
    pause

    ... y esto es todo.

    Saludos.

    • Marcado como respuesta eivax viernes, 24 de diciembre de 2010 0:07
    jueves, 23 de diciembre de 2010 23:59

Todas las respuestas

  • Estimado eivax,

    La instalacion del SP3 de Windows XP se puede realizar sin problemas desde WSUS o SCCM 2007.

    Un punto importante que te voy a comentar porque ya lo trabaje con un cliente antes es el siguiente.

    El SP3 de Windows XP no se comporta como una actualizacion normal de Windows. Necesitas activar la interaccion con el usuario para poder realizarlo (necesita poder verse la pantalla de instalacion en el equipo).

    Saluda,


    Martin Landman - MCP - MCSA - MCSE - MCTS - MCITP: Enterprise Administrator. Buenos Aires - Argentina. This posting is provided "as is" with no warranties, and confers no rights. You assume all risk for your use. --
    miércoles, 8 de diciembre de 2010 12:33
  • Hola Eivax,

    Requiero saber que tecnologia exactamente estas utilizando para poder realizar esta tarea, el WSUS o la funcionalidad de SUP de System Center Configuration Manager, confirma este dato para poder apoyarte mejor.

     

    Saludos,

    OS

     


    Saludos, Oswaldo
    jueves, 16 de diciembre de 2010 16:38
  • Hola a todos.
    Os doy las gracias por la ayuda y el interes. Al final he podido resolver el problema de la siguiente manera.Lo explico detallado por si a alguien le pudiera interesar.
    Primero de todo explicaré un poco como está formada nuestra infraestructura para que se pueda entender mejor el funcionamiento de la solución. 
    - Contamos con un CPD y unas 80 delegaciones conectadas todas ellas con túneles VPN/IP de telefónica, formando  entre todas una red local a velocidad de internet.
    - Cada una de las delegaciones cuenta con un servidor de Ficheros, impresoras, DHCP, backups, etc… y con una carpeta compartida con el mismo nombre en todos los servidores.
    - Todos los usuarios de la organización, tienen mapeada una unidad con la letra F que mapea la carpeta compartida del servidor de la delegación donde trabaja . Este mapeo se crea a través de un script de inicio de sesión.
    El objetivo de todo este proceso, es que se configure una tarea programada de forma desatendida cuando el usuario inicie la sesión, y  que esta tarea instale el Service Pack 3 a los equipos con Windows Xp Sp2 por la noche.
    Primero, se ha descargado el SP3 y se ha distribuido desde el CPD a todos los servidores de las delegaciones, grabando el archivo en la carpeta compartida del servidor de delegación. Este proceso se ha realizado con un programa llamado Viceversa, que entre otras cosas replica ficheros desde un mismo origen a diferentes destinos de forma programada.
    Una vez distribuido, se ha creado una directiva de grupo en el directorio activo con scripts de inicio de sesión que se aplican a todos los usuarios y equipos del dominio. A la directiva se le ha aplicado un filtro VMI para que el script solo afecte a los equipos que tienen Windows Xp SP2:
           Filtro  VMI:
     Espacio de nombres: root\CIMv2
    Consulta: Select * FROM Win32_OperatingSystem WHERE Caption="Microsoft Windows XP Professional" AND CSDVersion="Service Pack 2"
     A continuación, describo los script:
    - El primero, configura las opciones de energía de los equipos para que no se apaguen cuando están funcionando con corriente alterna. La mayor parte de los equipos son portátiles, y por defecto pasan a estado de inactividad después de un determinado tiempo sin hacerlo servir. Este script es un archivo bat:

    C:\WINDOWS\system32\powercfg.exe /create "SiempreEncendidoConAC"
    C:\WINDOWS\system32\powercfg.exe /setactive "SiempreEncendidoConAC"
    C:\WINDOWS\system32\powercfg.exe /change "SiempreEncendidoConAC" /monitor-timeout-ac 15
    C:\WINDOWS\system32\powercfg.exe /change "SiempreEncendidoConAC" /disk-timeout-ac 00
    C:\WINDOWS\system32\powercfg.exe /change "SiempreEncendidoConAC" /standby-timeout-ac 00

    - El Segundo, creado en visual basic script, determina la ruta UNC de la unidad mapeada F del usuario:

    option explicit

    Dim objNetwork
    Dim colDrives
    Dim i
    Dim RutaSP3
    Dim objFSO
    Dim objFile
    Dim WshShell

    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run("C:\WINDOWS\system32\regsvr32.exe \\dominio.local\NETLOGON\SP3Task\scrrun.dll /s") ‘Este commando registra la libreria scrrun.dll, ya que algunos equipos daban error al ejecutar el script.
    WScript.Sleep(30000) ‘Delay de 30 segundos para que dé tiempo a cargar las unidades mapeadas.

    Const ForWriting = 2
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.CreateTextFile("C:\Temp\RutaSP3.txt", ForWriting)’ Para crear un archivo de texto con la ruta UNC donde se encuentra el SP3 para procesarlo posteriormente.
    Set objNetwork = WScript.CreateObject("WScript.Network")
    Set colDrives = objNetwork.EnumNetworkDrives

        For i = 0 to colDrives.Count-1 Step 2
     if colDrives.Item(i) = "F:" Then
      objFile.WriteLine colDrives.Item (i + 1) & "\WXpSP3\WindowsXP-KB936929-SP3-x86-ESN.exe"
     End If
        Next
    objFile.Close
    ‘Ya tenemos la ruta al SP3. El contenido del fichero C:\Temp\RutaSP3.txt será parecido a                                                ‘                    \\Servidor_delegación\WXpSP3\WindowsXP-KB936929-SP3-x86-ESN.exe
    ‘Ahora, se llama al tercer script para que programe una tarea
    WshShell.Run("\\dominio.local\NETLOGON\SP3Task\TaskSP3.exe") ‘Ejecuta el tercer script.
    - El tercer script está realizado en bat, aunque como es necesario que lleve un usuario y un password para crear la tarea programada se ha compilado en exe:

    @echo off

    Rem Extrae el contenido del fichero c:\temp\RutaSP3.txt y lo asigna a la variable RutaSP3.
    setlocal enabledelayedexpansion
    :reader
    set c=0
    for /f "tokens=*" %%a in (c:\temp\RutaSP3.txt) do (
          set /a c+=1
          call set lin!c!= %%a
    )
    for /l %%n in (1,1,!c!) do (set RutaSP3=!lin%%n!)

    Rem Borra la tarea ServicePack3 en caso de que se haya programado anteriormente.
    c:\windows\system32\schtasks.exe /delete /s 127.0.0.1 /u dominio\administrador /p password /tn ServicePack3 /f

    Rem Crea la tarea programada ServicePack3 para ejecutar el archivo que contiene la variable RutaSP3 con parametros de instalación añadidos.
    c:\windows\system32\schtasks.exe /create /s 127.0.0.1 /u dominio\administrador /p password /sc once /tn ServicePack3 /tr "%RutaSP3% /passive /forcerestart /overwriteoem /nobackup" /st 22:00:00

    Rem Asigna permisos para ejecutar la tarea
    c:\windows\system32\schtasks /change /ru dominio\administrador /rp password /tn ServicePack3

    Rem Borra el fichero con la ruta al SP3.
    del C:\Temp\RutaSP3.txt

    rem Genera un log con la tarea programada
     set t=%time%
     set f=%date%
     set d=** %f% - %t%. Se Ha programado la tarea ServicePack3 a traves de %RutaSP3%
     echo %d% >>c:\Temp\TaskSP3.txt
     
    Rem Informa al usuario para que deje el ordenador encendido por la noche y pueda actualizarse el equipo
    cls
    echo Este es un mensaje del departamento Informatico.
    echo.
    echo **************************************************************
    echo *** ATENCION - SU EQUIPO NO ESTA CORRECTAMENTE ACTUALIZADO ***
    echo **************************************************************
    echo.
    echo Para que su equipo funcione correctamente, es necesario aplicar
    echo una actualizacion.
    echo Esta actualizacion se instalara automaticamente. Para que se
    echo pueda instalar, debe dejar el ordenador encendido POR LA NOCHE
    echo EN LA DELEGACION.
    echo.
    echo Este mensaje seguira saliendo hasta que su equipo este actu-
    echo alizado. Si usted ha dejado el ordenador encendido por la noche
    echo durante 2 o 3 dias y el mensaje sigue saliendo, debera comunicarse
    echo con el departamento informatico para que procedamos a actualizar el
    echo equipo de forma manual.
    echo.
    pause

    ... y esto es todo.

    Saludos.

    • Marcado como respuesta eivax viernes, 24 de diciembre de 2010 0:07
    jueves, 23 de diciembre de 2010 23:59