Vamos a ver un problema con el que me he encontrado recientemente. Este problema puede aparecer si utilizamos System Center Configuration Manager 2012 o superior para desplegar actualizaciones de software, y se debe a que ha quedado alguna referencia en la base de datos a una actualización ya eliminada.
Problema
El error se presenta a la hora de resolver las dependencias de cualquier Task Sequence para el despliegue de Sistemas Operativos que incluya algún paso para instalar actualizaciones de software. El mensaje que nos aparece es “An error occurred while starting the task sequence (0x80004005)”, y si nos fijamos en el SMSTS.LOG observaremos un registro como éste:
Cómo solucionarlo
Para resolverlo, hay que eliminar la información residual de la actualización que nos está generando estos problemas. Para ello podemos seguir los siguientes pasos:
- Abrimos SQL Server Management Studio y navegamos hasta seleccionar la base de datos de Configuration Manager.
- Una vez seleccionada la base de datos de SCCM, vamos a ejecutar la siguiente query: select * from PolicyAssignment where PolicyID like ‘%A1B2C34D-13AD-55E1-33F2-789162FDA18F%’. Recordad cambiar el valor entre %’s por el GUID de vuestra política.
- Como resultado de la query anterior, obtendremos el PADBID (ejemplo: 111222333). Con esto, ejecutamos la siguiente query: Delete from PolicyAssignment where PADBID = ‘111222333’. Sustituid el número entre comillas por el PADBID que os ha devuelto la query del punto anterior.
Si no se obtiene ningún error al ejecutar la última query, ya podríamos ejecutar de nuevo nuestras Task Sequences. No obstante, podemos obtener un error como el siguiente:
Msg 547, Level 16, State 0, Line 1
The DELETE statement conflicted with the REFERENCE constraint «DepPolicyAssignment_1_FK». The conflict occurred in database «CM_XXX», table «dbo.DepPolicyAssignment», column ‘PADBID’
En dicho caso, tendríamos que seguir los pasos indicados a continuación:
- Ejecutamos una nueva query: select * from DepPolicyAssignment where PolicyID like ‘%A1B2C34D-13AD-55E1-33F2-789162FDA18F%’. De nuevo, sustituid por vuestro GUID.
- Obtendremos de nuevo el PADBID, pero esta vez de la tabla DepPolicyAssignment (ejemplo: 444555666). Con él, ejecutamos la siguiente query, con la que comprobaremos que existe la entrada en la tabla: select * from DepPolicyAssignment where PADBID = ‘444555666’.
- Una vez ejecutada con éxito la query anterior, vamos a proceder a eliminar las 2 entradas a la vez (una de la tabla PolicyAssignment y la otra de la tabla DepPolicyAssignment), ya que están referenciadas y hace falta eliminarlas. Para ello ejecutamos la siguiente query:
delete from DepPolicyAssignment where PADBID = ‘444555666’
delete from PolicyAssignment where PADBID = ‘111222333’
Finalmente, tras esta última query, el proceso de despliegue de imágenes debería volver a funcionar correctamente.
Podéis comentarnos lo que sea en info@kabel.es.
También podéis seguirnos en Twitter, LinkedIn y Facebook.