Mostrando entradas con la etiqueta Error. Mostrar todas las entradas
Mostrando entradas con la etiqueta Error. Mostrar todas las entradas

miércoles, 30 de mayo de 2012

Fallo en la instalación del cliente de SCCM

Un par de servidores no reportaban inventario de hardware.
La solución en este caso es bastante drástica, pero por lo general, muy efectiva.

  • Desinstalar el agente de SCCM (ccmsetup.exe /uninstall)
  • Renombrar la carpeta Repository que se encuentra en C:\Windows\System32\WBEM para que Windows regenere el repositorio WMI
  • Reinstalar el cliente. 


Por lo general esta serie de pasos soluciona los problemas con el cliente que generan la ausencia de inventarios de hardware. Sin embargo, muchas veces, y sin que todavía haya encontrado una explicación al asunto, la instalación del cliente simplemente falla.
 En el log de instalación (C:\Windows\System32\CCMSetup\CCMsetup.log) encontramos este mensaje: 

Failed to create the ccmsetup service (0)

Y el mensaje no puede ser más claro. No puede crearse un servicio de Windows para el ejecutable CCMSetup.exe. La solución es muy sencilla entonces, hay que hacer que el instalador se ejecute como un proceso aislado y no como un servicio, y para ello contamos con el parámetro NoService.
Así que simplemente ejecutamos el instalador del cliente de este modo:

CCMSetup.exe /NoService

Y voila!, el cliente de SCCM se instala sin inconvenientes.

lunes, 23 de abril de 2012

No funciona el inventario de hardware

En el anterior post veíamos la manera de armar una colección con todos los equipos que no reportan un inventario de hardware desde hace 30 días. Por lo general la razón para que el inventario de hardware no funcione se encuentra del lado del cliente. Problemas con el servicio de WMI, falta de espacio en disco, problemas de comunicación con el servidor, certificados, etc.
Pero si empezamos a notar que son muchas las computadoras que no reportan su inventario de hardware, entonces podemos estar ante un problema del lado del servidor, o para ser más precisos, un problema en la manera en que el cliente y el servidor se comunican para trasmitir la información del inventario de hardware.

El circuito del inventario de hardware

La información colectada por el cliente es empaquetada en un archivo MIF (Management Information Format).   Estos archivos son enviados por el cliente al servidor utilizando el servicio de transferencia en segundo plano (BITS). El servidor analiza cada uno de los MIFs recibidos, y si no hay ningún error agrega la información a la base de datos. En caso de error, el MIF es enviado a la carpeta BADMIFS, para que puedan ser analizados en busca del problema.

Errores en los MIFs

Muchas veces, los errores que impiden el procesamiento de un MIF son temporales. Algún valor faltante, información mal colectada, errores de formato, etc. Pero a veces se trata de errores que se repiten cada vez que el cliente envía información al servidor. Un ejemplo de este tipo de problemas son los archivos MIF demasiado grandes.

Cuando el tamaño importa

Si vamos a Site Settings/Client Agents/Hardware Inventory Client Agent, en el cuadro de diálogo que se abre, en la pestaña General, encontraremos la opción de  Maximum custom MIF file size (KB), dónde podremos especificar el valor máximo del archivo MIF a importar. El valor más grande admitido aquí es de 5120 KB, es decir 5 MB.


Si entramos a la carpeta C:\Program Files\Microsoft Configuration Manager\inboxes\auth\dataldr.box\BADMIFS, allí podremos ver todos los MIFS rechazados. En la vista Detalles de Windows, observaremos el tamaño de los archivos. Si este tamaño supera el establecido en el cuadro de diálogo mostrado anteriormente, los MIFS serán siempre rechazados y la información de inventario nunca pasará a la base de datos.

Por encima del límite

Si ninguno de los MIFs rechazados supera los 5MB que tiene como límite máximo el SCCM, entonces la solución a este problema consiste sencillamente en modificar la configuración establecida en la consola.
El problema es cuando nuestros MIFs superan los 5 MB, entonces deberemos recurrir a una modificación de la configuración de nuestro servidor un tanto más rústica.
Abrimos el editor de registro y buscamos la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Components\SMS_INVENTORY_DATA_LOADER\Max MIF Size. Modificamos su valor en decimal y establecemos el tamaño límite máximo para los MIFs en bytes.


El riesgo de los MIFs grandes

No es difícil suponer porque Microsoft decidió establecer un valor máximo para los MIFs a procesar. Cada MIF de un cliente debe transitar por nuestra red, almacenarse en nuestro servidor, y luego ser procesado, parseado y almacenado en nuestra base de datos. En una organización con 5000 clientes, establecer un MIF de 5 MB representa 24 GB de información saturando la red y ocupando espacio en disco y procesamiento de nuestros servidores.
Lo ideal, cuando nuestros MIFs crecen sin control, es empezar a limitar el inventario, reduciendo los items a recolectar. Para hacer esto deberemos modificar el tan temido y conocido SMS_DEF.MOF, del que hablaremos en otra oportunidad.

Saludos
Franco