Depurar mensajes de integridad de capa

Last published : Oct 24, 2026
Cuando apaga la máquina de empaquetado y ejecuta Apagar para finalizar, llama a uniservice.exe para obtener el estado actual de integridad de la capa. Apagar para finalizar está comprobando si hay procesos obligatorios pendientes. Si un proceso obligatorio no se cierra, le muestra un mensaje sobre el problema pendiente. App Layering escribe esta información en los siguientes archivos de registro:
C:\Program Files\Unidesk\Uniservice\Log\LayerIntegrity.txt C:\Program Files\Unidesk\Uniservice\Log\UniBilcLogs_X.txt
No puede saber exactamente qué archivo UniBilcLogs está utilizando, así que busque el que tenga la marca de tiempo más reciente. Busque "Integrity".
Podría pensar que puede omitir la comprobación de integridad de la capa apagando la máquina y finalizándola. Pero si lo intenta, el dispositivo de App Layering detiene la tarea y le devuelve a la máquina de empaquetado. El script Apagar para finalizar debe completar el proceso de finalización de la capa.

Advertencias de integridad de capa

Los siguientes mensajes de integridad de capa le indican qué operaciones en cola deben completarse antes de que una capa esté lista para finalizar:
  • "Hay un script RunOnce pendiente; compruébelo y reinicie la máquina de empaquetado."
  • "Hay un reinicio pendiente después de la instalación; compruébelo y reinicie la máquina de empaquetado."
  • "Hay una operación de Microsoft ngen en curso en segundo plano."
  • "Hay una operación de instalación de MSI en curso; compruebe la máquina de empaquetado."
  • "Hay un reinicio pendiente para actualizar los controladores en el disco de arranque; compruébelo y reinicie la máquina de empaquetado."
  • "Se necesita una operación de Microsoft ngen."
  • "Software Center Client está configurado para ejecutarse, pero el SMSCFG.INI sigue presente."
No puede omitir los mensajes de integridad de la capa apagando la máquina. El software de App Layering se detiene y le devuelve a la máquina de empaquetado hasta que todos los procesos se hayan completado.
Si una operación de Microsoft NGen está en curso, puede intentar acelerarla, como se describe en la siguiente sección.

"Hay un script RunOnce pendiente"

Al crear una capa o añadirle una versión, puede especificar un script para que se ejecute la primera vez que un usuario inicie sesión después de que su escritorio se inicie (o se reinicie). Por ejemplo, puede usar un script de ejecución única para completar la configuración de una aplicación. Un script de ejecución única es un archivo .cmd o .bat instalado en una capa.
Después de que un script de ejecución única se ejecuta en una imagen, Windows normalmente elimina las claves de registro asociadas cuando se reinicia. Este mensaje le indica que Windows no eliminó una clave para un script de ejecución única de una de estas ubicaciones:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
Para solucionar este problema:
  • Si el archivo de script ya no existe, elimine la clave de registro.
  • Si el script al que se hace referencia en el mensaje existe, ejecútelo manualmente y, a continuación, elimine la clave de registro.

"Hay un reinicio pendiente después de la instalación"

Este mensaje se origina en cualquiera de las siguientes claves de registro:
  • HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired
  • HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\NETLOGON\Start
  • HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\ACTIVECOMPUTERNAME
  • HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\COMPUTERNAME
  1. Si ve una de estas entradas, empiece por reiniciar. Reinicie varias veces si es necesario, hasta que esté seguro de que el mensaje no es una solicitud de reinicio real de algún software.
  2. Si el problema es con Net Logon, reinicie el Unidesk Service for Message Management.
  3. Compruebe la existencia de una de las tres primeras claves de Registro de la lista anterior:
    • HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
    • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending
    • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired
  4. Modifique manualmente cualquiera de estas claves para adaptarlas a sus necesidades. Si no necesita las claves, puede eliminarlas.
  5. Busque cambios en la clave NetLogon, para ver si:
    • El valor es diferente de lo que era al inicio.
    • El nombre del equipo es diferente del nombre del equipo activo.
    Si hay una discrepancia, corrija la configuración.
  6. Determine si una operación de unión a un dominio sigue esperando un reinicio.
    • HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\NETLOGON\Start
    • HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\ACTIVECOMPUTERNAME
    • HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\COMPUTERNAME
    No puede modificar estas tres claves del Registro, pero algunos programas pueden modificar la clave NETLOGON\Start en cada reinicio.
Después de limpiar las tres primeras claves enumeradas en el paso 1, si sigue recibiendo el mensaje al reiniciar, puede optar por ignorar las comprobaciones de integridad de la capa. Sin embargo, este es un último recurso y no se recomienda normalmente. Para obtener más información sobre cómo ignorar las comprobaciones de integridad de la capa, consulte la sección "Último recurso" al final de este artículo.

"Hay una operación de ngen de Microsoft en curso en segundo plano"

Este mensaje le indica que una operación de NGEN en primer plano o en segundo plano sigue en curso. Una operación de NGEN es donde los ensamblados de .Net se compilan en imágenes nativas. El mensaje significa que el proceso sigue en curso. Puede observar el progreso.
Advertencia:
No reinicie, ya que puede hacer que el proceso se inicie de nuevo.
Para observar el progreso en primer plano, ejecute ngen eqi 3. O bien, espere y ejecute ngen queue status periódicamente para ver cómo progresa el proceso. Tenga en cuenta que la ejecución de ngen queue status ralentiza el proceso en segundo plano, ya que el proceso en segundo plano se detiene cada vez que comprueba su estado en primer plano.
Es importante dejar que los procesos de NGEN terminen. Sea paciente. Si termina el proceso o reinicia a mitad, puede terminar con ensamblados de .Net escritos parcialmente.
Si un proceso en segundo plano, como MSCORSVW.EXE (el NET runtime Optimization Service) no ha terminado en un día, compruebe si hay procesos en segundo plano obsoletos. Un reinicio podría ayudar.
Una vez que los siguientes servicios hayan terminado de ejecutarse, puede continuar:
  • ngen.exe
  • ngentask.exe
  • mscorsvw.exe

"Hay una operación de instalación de MSI en curso"

Este mensaje indica que existe un mutex de sistema (objeto de exclusión mutua) llamado Global\_MSIExecute. El instalador MSI utiliza Global\_MSIExecute para asegurar que solo se ejecute un instalador a la vez. Si está seguro de que no se están realizando instalaciones MSI, podría haber un bloqueo en un recurso. Vuelva a la capa y averigüe qué proceso está bloqueado.

"Hay un reinicio pendiente para actualizar los controladores en el disco de arranque"

Este mensaje le indica que un servicio o controlador configurado para iniciarse en el arranque del sistema ha sido modificado o instalado. Es importante que el controlador modificado pueda arrancar correctamente.
Normalmente, solo necesita reiniciar una vez y el controlador funciona correctamente. En algunas ocasiones, hemos visto software (como Microsoft Defender o McAfee) intentar modificar su archivo de controlador en cada arranque, lo que activa esta comprobación de integridad cada vez. Ningún reinicio lo soluciona. Es posible que deba usar la opción de omitir la comprobación de integridad de la capa, como se explica en la sección siguiente, "Último recurso".

"se necesita una operación de Microsoft NGen"

Este mensaje le indica que se instaló una aplicación en la máquina de empaquetado y que programó elementos para ser actualizados con un nivel de prioridad de 3.
En este nivel de prioridad, la operación solo se ejecuta cuando la CPU está inactiva y está esperando hasta que no haya más actividad.
Para garantizar que la aplicación se ejecute de la manera más óptima en la imagen publicada, App Layering bloquea el proceso de finalización, porque el proceso NGEN debe ejecutarse en la máquina de empaquetado, en lugar de en cada máquina donde se implementa la aplicación.
Con una NGEN eqi 3 (nivel de prioridad 3), puede:
  • Ejecute las operaciones incompletas en ambos de los siguientes directorios:
    • c:\windows\microsoft.net\framework\vYY.MM.Build
    • c:\windows\microsoft.net\framework64\v4.0.30319
  • Espere. La operación NGEN normalmente se ejecuta por sí sola después de 15 minutos de inactividad.
Los valores que se examinan incluyen:
  • HKLM\SOFTWARE\Microsoft\\.NETFramework\v2.0.50727\NGenService\Roots\WorkPending
  • HKLM\SOFTWARE\WOW6432Node\Microsoft\\.NETFramework\v2.0.50727\NGenService\Roots\WorkPending
Un valor de 1 significa que hay elementos de trabajo en cola para ser procesados.

"El cliente de Software Center está configurado para ejecutarse, pero el SMSCFG.INI sigue presente...."

Este mensaje le indica que esta máquina tiene ccmexec.exe configurado como un servicio y que no está configurado como deshabilitado.
Dado que sabemos que cualquier capa creada en una máquina de empaquetado debe sellarse correctamente para implementarse correctamente en un entorno VDI, estamos comprobando que el SMSCFG.ini no esté presente. Hay un archivo de comandos para que lo ejecute al final de la capa. Hemos proporcionado los comandos para ejecutar en un archivo de comandos por lotes que puede usar para sellar la capa. Inicie sesión en una ventana de comandos como administrador para ejecutar este script:
c:\windows\setup\scripts\SEALSCCMCLIENT.cmd

Acelerar una operación de Microsoft NGen

El ejecutable NGEN es el Generador de imágenes nativas de Microsoft. Forma parte del sistema .NET. Ngen recompila el código de bytes .NET en imágenes nativas y construye las entradas del registro. Windows determina cuándo ejecutar NGEN basándose en lo que se está instalando y lo que Windows detecta en la configuración. Cuando NGEN se esté ejecutando, siempre deje que se complete. Una operación NGEN interrumpida puede dejarle con ensamblados .NET que no funcionan, u otros problemas en el sistema .NET.
Tiene la opción de esperar a que el proceso NGEN se complete en segundo plano, o forzarlo a primer plano. También puede comprobar el estado de la operación NGEN, como se describe en los pasos siguientes. Sin embargo, cada vez que comprueba el estado de la cola, está creando actividad en primer plano, lo que podría hacer que el procesamiento en segundo plano se detenga temporalmente.
Poner el proceso NGEN en primer plano le permite ver el progreso. Puede finalizar la capa cuando el proceso esté completo.
  1. Ponga una operación NGEN en primer plano. Normalmente, NGEN es una operación en segundo plano y se detiene si hay actividad en primer plano. Poner la tarea en primer plano puede ayudar a que la tarea se complete lo más rápido posible. Para ello:
    1. Abra un símbolo del sistema como administrador.
    2. Vaya al directorio de Microsoft .NET Framework para la versión actualmente en uso:
      cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX
    3. Introduzca el comando NGEN para ejecutar los elementos en cola: ngen eqi 3
    4. Esto trae la tarea NGEN a primer plano en el símbolo del sistema y enumera los ensamblados que se están compilando.
      Nota:
      Si recibe varios mensajes de "compilación fallida", compruebe en el Administrador de tareas si hay una instancia de MSCORSVW.EXE en ejecución. Si es así, espere a que se complete o vuelva a ejecutar NGEN eqi 3. No reinicie para detener la tarea. La tarea debe completarse.
  2. Comprobar el estado de una operación NGEN
    1. Abra un símbolo del sistema como administrador.
    2. Compruebe el estado ejecutando este comando: NGEN queue status
    3. Cuando reciba el siguiente estado, el NGEN se habrá completado y podrá finalizar la capa. El .NET Runtime Optimization Service se detiene,

Último recurso para solucionar un problema de integridad de capa (NO recomendado)

Si tiene una capa que simplemente no se puede finalizar, puede usar una clave de registro para indicarle a esa capa que ignore sus comprobaciones de integridad de capa.
Advertencia: ¡Utilice esta clave solo como último recurso! App Layering le impide finalizar en estas circunstancias. Permitirle finalizar una capa puede dañar irreparablemente tanto la capa como las imágenes que la incluyen. ¡Siempre intente resolver el problema primero dentro de Windows!
Para ignorar los mensajes de integridad de capa en una capa (no recomendado):
  1. Ejecute regedit.exe y cree esta clave:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Uniservice: "BypassLayerCheck"=DWORD 1
    El valor no importa. Lo que importa es que el valor exista. Este paso bloquea las comprobaciones de integridad de capa en una capa. Permite que la capa se finalice, independientemente del daño que pueda causar a la capa y a las imágenes en capas que la incluyen.