Depurar mensajes de integridad de capa
Cuando apaga la máquina de empaquetado y ejecuta Shutdown for Finalize, llama uniservice.exe
para obtener el estado actual de integridad de la capa. Apagar para Finalizar está comprobando si los procesos requeridos aún están pendientes. Si un proceso requerido no se cierra, le da 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é UniBilcLogs
archivo está usando, así que busque el que tiene la última marca de tiempo. Buscar “Integridad”.
Puede 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 App Layering detiene la tarea y le devuelve a la máquina de empaquetado. El script Shutdown for Finalize tiene que 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:
- “Un script de RunOnce es excepcional: compruebe y reinicie la máquina de empaquetado.”
- “Un reinicio posterior a la instalación está pendiente; compruebe y reinicie la máquina de empaquetado.”
- «Una
ngen
operación de Microsoft está en curso en segundo plano. « - “Una operación de instalación de MSI está en curso; compruebe la máquina de empaquetado.”
- “Está pendiente un reinicio para actualizar los controladores en el disco de arranque; compruebe y reinicie la máquina de empaquetado.”
- “Se necesita una operación de Microsoft ngen.”
- “Software Center Client está configurado para ejecutarse, pero SMSCFG.INI todavía está presente.”
No puede omitir los mensajes de integridad de capa apagando el equipo. El software App Layering se detiene y le devuelve a la máquina de empaquetado hasta que todos los procesos se hayan completado.
Si una NGen
operación de Microsoft está en curso, puede intentar acelerarla, como se describe en la siguiente sección.
“Un script de RunOnce es excepcional”
Al crear una capa o agregar una versión a la misma, puede especificar un script para que se ejecute la primera vez que un usuario inicie sesión después de que se inicie el escritorio (o se reinicie). Por ejemplo, puede utilizar un script Ejecutar una vez para completar la configuración de una aplicación.
Un script Ejecutar una vez es un .bat
archivo .cmd
o instalado en una capa.
Después de ejecutar un script Ejecutar una vez en una imagen, Windows normalmente elimina las claves del Registro asociadas cuando se reinicia. Este mensaje le indica que Windows no eliminó una clave para un script Ejecutar una vez desde 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 del Registro.
- Si existe el script a la que se hace referencia en el mensaje, ejecute manualmente el script y, a continuación, elimine la clave del Registro.
“Un reinicio posterior a la instalación está pendiente”
Este mensaje se origina con cualquiera de las siguientes claves del 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
-
Si ve una de estas entradas, comience reiniciando. Reinicie varias veces si es necesario, hasta que esté seguro de que el mensaje no es una solicitud de reinicio real por parte de algún software.
-
Si el problema es con el inicio de sesión de red, reinicie el
Unidesk Service for Message Management
. -
Compruebe la existencia de una de las tres primeras claves del 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
-
Modifique manualmente cualquiera de estas teclas para adaptarse a sus necesidades. Si no necesita las claves, puede eliminarlas.
-
Busque cambios en la
NetLogon
clave, para ver si:- El valor es diferente de lo que era en el inicio.
- El nombre del equipo es diferente al nombre del equipo activo.
Si hay una discrepancia, corrija la configuración.
-
Determine si una operación de unión de 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
NETLOGON\Start
clave en cada reinicio.
Después de limpiar las tres primeras claves enumeradas en el paso #1, sigue recibiendo el mensaje al reiniciar, puede optar por ignorar las comprobaciones de integridad de capa. Sin embargo, este es un último recurso y normalmente no se recomienda. Para obtener detalles acerca de cómo ignorar las comprobaciones de integridad de capa, consulte la sección “Último recurso” al final de este artículo.
ngen
operación de Microsoft está en curso en segundo plano»
«Una Este mensaje le indica que una NGEN
operación en primer plano o en segundo plano aún está en curso. Una NGEN
operación es donde los .Net
ensamblados se compilan en imágenes nativas. El mensaje significa que el proceso todavía está en curso. Puede ver el progreso.
Advertencia:
No reinicie, ya que puede hacer que el proceso comience de nuevo.
Para ver 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 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 NGEN
procesos terminen. Sé paciente. Si finaliza el proceso o reinicia en el medio, puede terminar con .Net
ensamblados parcialmente escritos.
Si un proceso en segundo plano, como MSCORSVW.EXE
(el servicio de optimizaciónen NET
tiempo de ejecución) no termina 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
“Una operación de instalación de MSI está en curso”
Este mensaje dice que Global\_MSIExecute
existe un mutex del sistema (objeto de exclusión mutua) llamado. El instalador MSI utiliza Global\_MSIExecute
para asegurarse de que sólo se ejecuta un instalador a la vez. Si está seguro de que no se están produciendo instalaciones MSI, es posible que haya un bloqueo en un recurso. Vuelva a la capa y averigüe qué proceso está bloqueado.
“Un reinicio está pendiente para actualizar los controladores en el disco de arranque”
Este mensaje le indica que se ha modificado o instalado un servicio o controlador configurado para iniciarse en el momento del arranque del sistema. Es importante que el controlador modificado pueda arrancar correctamente.
Normalmente necesita reiniciar una vez, y el controlador funciona bien. En algunas ocasiones hemos visto que software (como Microsoft Defender o McAfee) intenta modificar su archivo de controlador en cada arranque, activando esta comprobación de integridad cada vez. No hay reinicios, claro. Es posible que necesite utilizar la opción de omitir la comprobación de integridad de la capa, como se explica en la sección siguiente, “Último recurso”.
NGen
operación de Microsoft»
«se necesita una Este mensaje le indica que se instaló una aplicación en la máquina de empaquetado y que programó que los elementos se actualizaran 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 asegurarse de que la aplicación se ejecuta de la manera más óptima en la imagen publicada, App Layering bloquea el proceso de finalización, ya que el NGEN
proceso debe ejecutarse en la máquina de empaquetado, en lugar de en cada máquina donde se implementa la aplicación.
Con un NGEN eqi 3
(nivel de prioridad 3), puede:
-
Ejecute las operaciones sin terminar en los dos directorios siguientes:
c:\windows\microsoft.net\framework\vYY.MM.Build
c:\windows\microsoft.net\framework64\v4.0.30319
-
Espera. La
NGEN
operación normalmente se ejecuta por sí sola después de 15 minutos de tiempo 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.
“Software Center Client está configurado para ejecutarse, pero SMSCFG.INI sigue presente…”
Este mensaje le indica que este equipo se ha 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 no SMSCFG.ini
está presente. Hay un archivo de comandos para que se ejecute al final de la capa. Hemos proporcionado los comandos para ejecutarse en un archivo de comandos por lotes que puede utilizar para sellar la capa. Inicie sesión en una ventana de comandos como administrador para ejecutar este script:
c:\windows\setup\scripts\SEALSCCMCLIENT.cmd
NGen
operación de Microsoft
Aceleración de una El NGEN
ejecutable es el Generador de imágenes nativas de Microsoft. Es parte del .NET
sistema. Ngen
vuelve a compilar código de .NET
bytes en imágenes nativas y construye las entradas del registro. Windows determina cuándo ejecutarse en NGEN
función de lo que se está instalando y lo que Windows detecta en la configuración. Cuando NGEN
se está ejecutando, siempre deja que se complete. Una NGEN
operación interrumpida puede dejarle con .NET
ensamblados que no funcionan u otros problemas en el .NET
sistema.
Tiene la opción de esperar a que el NGEN
proceso se complete en segundo plano o forzarlo al primer plano. También puede comprobar el estado de la NGEN
operación, tal y 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.
Llevar el NGEN
proceso al primer plano le permite ver el progreso. Puede finalizar la capa cuando finalice el proceso.
- Traiga una
NGEN
operación al primer plano. Normalmente,NGEN
es una operación en segundo plano y se detiene si hay actividad en primer plano. Llevar la tarea a primer plano puede ayudar a que la tarea se complete lo más rápido posible. Para hacerlo:- Abra un símbolo del sistema como Administrador.
-
Vaya al directorio de Microsoft.NET Framework para la versión actualmente en uso:
cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX
- Introduzca el
NGEN
comando para ejecutar los elementos en cola:ngen eqi 3 <!--NeedCopy-->
- Esto lleva la
NGEN
tarea al primer plano en el símbolo del sistema y enumera los ensamblados que se están compilando.Nota:
Si recibe varios mensajes de «error de compilación», busque en el Administrador de tareas para ver si
MSCORSVW.EXE
se está ejecutando una instancia de. Si es así, permita que se complete, o vuelva a ejecutarNGEN eqi 3
. No reinicie para detener la tarea. La tarea debe completarse.
- Comprobar el estado de una
NGEN
operación- Abra un símbolo del sistema como Administrador.
- Compruebe el estado ejecutando este comando:
NGEN queue status
- Cuando recibe el siguiente estado, el
NGEN
se completará y puede finalizar la capa. El.NET Runtime Optimization Service
se detiene,
Último recurso para manejar un problema de integridad de capa (NO recomendado)
Si tiene una capa que simplemente no puede llegar a finalizarse, puede usar una clave del Registro para decirle a esa capa que ignore sus comprobaciones de integridad de capa.
Advertencia: ¡Utilice esta llave solo como último recurso! App Layering le bloquean la finalización en estas circunstancias. Permitirle finalizar una capa puede dañar irreparablemente tanto la capa como las imágenes que la incluyen. ¡Intenta siempre resolver el problema dentro de Windows primero!
Para ignorar los mensajes de integridad de capa en una capa (no recomendado):
-
Ejecute
regedit.exe
y cree esta clave:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Uniservice: "BypassLayerCheck"=DWORD 1<!--NeedCopy-->
El valor no importa. Lo que importa es que el valor existe. Este paso bloquea las comprobaciones de integridad de capa en una capa. Permite finalizar la capa, independientemente del daño que pueda causar a la capa y a las imágenes en capas que la incluyen.
En este artículo
- Advertencias de integridad de capa
- “Un script de RunOnce es excepcional”
- “Un reinicio posterior a la instalación está pendiente”
- «Una ngen operación de Microsoft está en curso en segundo plano»
- “Una operación de instalación de MSI está en curso”
- “Un reinicio está pendiente para actualizar los controladores en el disco de arranque”
- «se necesita una NGen operación de Microsoft»
- “Software Center Client está configurado para ejecutarse, pero SMSCFG.INI sigue presente…”
- Aceleración de una NGen operación de Microsoft
- Último recurso para manejar un problema de integridad de capa (NO recomendado)