WSUS, Windows Server Update Services, es una de las herramientas más valiosas que Microsoft ofrece de forma gratuita para entornos empresariales con windows. Lo he dicho en otras ocasiones pero no me importa repetirme: de nada te sirve tener activadas las actualizaciones automáticas en todos los ordenadores de tu empresa si no eres capaz de comprobar de forma centralizada si realmente están actualizando (lo mismo sería aplicable a los antivirus). En ocasiones, además, te interesa bloquear alguna de las actualizaciones (algún parche que se ha anunciado que tiene efectos secundarios indeseados), tienes la oportunidad de hacer pruebas sobre un entorno reducido antes de distribuir los parches a toda tu empresa o, incluso, bloquear alguna actualización que consideras será problemática sin formación previa (el Explorer 7, por ejemplo). El ahorro en ancho de banda es, además, muy importante en empresas muy grandes en las que una actualización masiva durante ese segundo martes de cada mes puede acabar colapsándote la red. En entornos con alrededor de 20 equipos te puedes permitir el lujo de hacer revisiones semanales de forma manual. Se pierde mucho tiempo pero puede hacerse (yo lo he hecho cuando no existían estas herramientas). Pero cuando hablamos de 300 o más equipos no hay más remedio que usar soluciones como esta. O eso o confiar en la providencia.
A finales del mes pasado Microsoft lanzó la versión 3.0 de esta herramienta y yo, aguerrido de mi, me lancé a probarla cual novato. Desde el 30 de abril hasta el 8 de mayo que se distribuirían los parches mensuales, pensé yo, contaba con una semana larga para poner en marcha el nuevo servidor o hacer una digna marcha atrás si ocurría algo, así que no me preocupé de hacer ninguna prueba inicial. Debería de arder en los infiernos por seguir haciendo estas cosas a mis años…
La actualización no funcionó en absoluto. No tengo muy claro que es lo que ocurrió porque no se me presentó ningún error durante la instalación de la nueva versión pero esta no llegó a funcionar correctamente en ningún momento. Los mensajes de error (crípticos, como tantas otras veces en los productos de Microsoft) me dan una pequeña pista: WSUS funciona apoyado sobre un servidor de bases de datos de la familia SQL Server. Como alternativa a los productos de pago microsoft ofrecía con su versión 2.0 la posibilidad de usar MSDE (Microsoft SQL Server Desktop Engine) mientras que en la nueva versión incluye su nuevo Windows Internal Database. El único error que aparecía en el visor de eventos apuntaba a que el problema iba en esta línea pero tampoco daba muchas pistas para resolverlo:
El servicio Windows Internal Database (MICROSOFT##SSEE) terminó con el error específico de servicio 3417 (0xD59)
Como decían en en American Beauty a partir de aquí todo es cuesta abajo. La instalación de la versión 3.0 me había eliminado del panel de control la opción de desinstalar el MSDE pero el servicio seguía activo. Después de deshabilitarlo manualmente el Windows Internal Database sigue sin arrancar correctamente. Le echo un vistazo a Google y veo que hay más administradores con el mismo problema que yo pero ninguna solución válida (el producto es demasiado nuevo, me temo). Así que toca dar marcha atrás. Y aquí es dónde te das cuenta de lo chapuceros que son los chicos de Microsoft y de lo mal que hacen las cosas.
Seguía teniendo un par de días antes de la distribución de parches de este mes así que desinstalo completamente los restos de ambas versiones y trato de hacer una instalación limpia de la nueva versión. Ni de broma. Por los mensajes de error del log de instalación (igualmente crípticos) imagino que no han contemplado una instalación limpia sobre una máquina dónde ha habido una instalación anterior porque el problema parece tener que ver con unas claves que no encuentra en el registro:
ParseCommandLine: Failed to open SOFTWARE\Microsoft\Update Services\Server\Setup registry key (Error 0x80070002)
Se me acaba el tiempo y la paciencia, así que decido volver a la versión 2.0 y ver con más calma lo que ocurre para el mes que viene. Pues va a ser que no. La instalación se detiene a medias diciendo que encuentra un error en la instalación de algo llamado PSFSIP. ¿De qué diablos va esto ahora? Ya cabreado echo mano de la artillería y usando Filemon descubro que se trata de una de las dll que usa WSUS, que se instalan en windows\system32 y que no se ha eliminado tras la desinstalación de la versión 3 pero que parece no ser compatible con la 2 y que el procedimiento de instalación de esta última no tiene contemplado encontrarse con lo cual no la sobreescribe. La renombro y entra del tirón.
Conclusión: una semana dando cornadas y más de 20 horas de trabajo perdidas para volver a la situación inicial. ¿Y todavía hay quien dice por ahí que usar productos de Microsoft te ahorra dinero en la gestión de equipos? A lo mejor como este WSUS es ‘de gratis’ se trata de eso…
PostConclusión: Esto no se va a quedar así… prometo volver a intentarlo ahora con más tiempo. Y ganarle, faltaría más…