Messages de débogage d’intégrité de
Lorsque vous arrêtez la machine d’packaging et exécutez Shutdown for Finalize, il appelle pour uniservice.exe
obtenir l’état actuel d’intégrité de la couche. Arrêter pour Finalize vérifie si des processus requis sont toujours en attente. Si un processus requis ne s’arrête pas, il vous envoie un message sur le problème en attente. App Layering écrit ces informations dans les fichiers journaux suivants :
C:\Program Files\Unidesk\Uniservice\Log\LayerIntegrity.txt
C:\Program Files\Unidesk\Uniservice\Log\UniBilcLogs_X.txt
Vous ne pouvez pas savoir exactement quel UniBilcLogs
fichier il utilise, alors recherchez celui avec le dernier horodatage. Rechercher « Intégrité ».
Vous pourriez penser que vous pouvez contourner le contrôle d’intégrité de la couche en arrêtant la machine et en la finalisant. Mais si vous essayez, l’appliance App Layering arrête la tâche et vous renvoie à la machine de packaging. Le script Shutdown for Finalize doit terminer le processus de finalisation de la couche.
Avertissements sur l’intégrité
Les messages d’intégrité de couche suivants vous indiquent les opérations en file d’attente qui doivent être terminées avant qu’une couche soit prête à finaliser :
- “Un script RunOnce est exceptionnel - veuillez vérifier et redémarrer la machine de packaging.”
- “Un redémarrage post-installation est en attente. Veuillez vérifier et redémarrer la machine de packaging.”
- « Une
ngen
opération Microsoft est en cours en arrière-plan. « - “Une opération d’installation MSI est en cours - veuillez vérifier la machine de packaging.”
- “Un redémarrage est en attente pour la mise à jour des pilotes sur la disquette de démarrage. Veuillez vérifier et redémarrer la machine de packaging.”
- « Une opération Microsoft ngen est nécessaire.«
- « Software Center Client est configuré pour s’exécuter, mais SMSCFG.INI est toujours présent.«
Vous ne pouvez pas contourner les messages d’intégrité de la couche en arrêtant la machine. Le logiciel App Layering s’arrête et vous renvoie à la machine de packaging jusqu’à ce que tous les processus soient terminés.
Si une NGen
opération Microsoft est en cours, vous pouvez essayer de l’accélérer, comme décrit dans la section suivante.
« Un script RunOnce est exceptionnel »
Lorsque vous créez une couche ou y ajoutez une version, vous pouvez spécifier un script à exécuter la première fois qu’un utilisateur se connecte après le démarrage (ou le redémarrage) de son bureau. Par exemple, vous pouvez utiliser un script Exécuter une fois pour terminer la configuration d’une application.
Un script Exécuter une fois est un .bat
fichier .cmd
ou installé sur une couche.
Après l’exécution d’un script Exécuter une fois sur une image, Windows supprime normalement les clés de Registre associées lors du redémarrage. Ce message vous indique que Windows n’a pas supprimé une clé pour un script Exécuter une fois à partir de l’un des emplacements suivants :
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ RunOnce
Pour résoudre ce problème :
- Si le fichier de script n’existe plus, supprimez la clé de Registre.
- Si le script référencé dans le message existe, exécutez manuellement le script, puis supprimez la clé de Registre.
« Un redémarrage post-installation est en attente »
Ce message provient de l’une des clés de Registre suivantes :
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 l’une de ces entrées s’affiche, commencez par redémarrer. Redémarrez plusieurs fois si nécessaire, jusqu’à ce que vous soyez sûr que le message n’est pas une véritable demande de redémarrage de certains logiciels.
-
Si le problème concerne l’ouverture de session réseau, redémarrez le
Unidesk Service for Message Management
. -
Vérifiez l’existence de l’une des trois premières clés de Registre de la liste précédente :
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
-
Modifiez manuellement l’une de ces clés en fonction de vos besoins. Si vous n’avez pas besoin des clés, vous pouvez les supprimer.
-
Recherchez les modifications apportées à la
NetLogon
clé, pour voir si :- La valeur est différente de ce qu’elle était au démarrage.
- Le nom de l’ordinateur est différent du nom de l’ordinateur actif.
S’il y a une divergence, corrigez le paramètre.
-
Déterminez si une opération de jointure de domaine est toujours en attente d’un redémarrage.
HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\NETLOGON\Start
HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\ACTIVECOMPUTERNAME
HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\COMPUTERNAME
Vous ne pouvez pas modifier ces trois clés de Registre, mais certains logiciels peuvent modifier la
NETLOGON\Start
clé à chaque redémarrage.
Après avoir nettoyé les trois premières clés répertoriées à l’étape #1, vous obtenez toujours l’invite au redémarrage, vous pouvez choisir d’ignorer les vérifications d’intégrité de la couche. Toutefois, il s’agit d’un dernier recours et il n’est normalement pas recommandé. Pour plus d’informations sur la façon d’ignorer les contrôles d’intégrité de la couche, consultez la section « Dernier recours » à la fin de cet article.
ngen
opération Microsoft est en cours en arrière-plan »
« Une Ce message vous indique qu’une NGEN
opération de premier plan ou d’arrière-plan est toujours en cours. Une NGEN
opération est l’endroit où les .Net
assemblages sont compilés en images natives. Le message signifie que le processus est toujours en cours. Vous pouvez regarder les progrès.
Avertissement :
Ne redémarrez pas, car cela peut provoquer un recommencement du processus.
Pour regarder la progression au premier plan, exécutez ngen eqi 3
. Ou attendez et exécutez ngen queue status
périodiquement pour voir comment le processus progresse. Gardez à l’esprit que l’exécution ngen queue status
ralentit le processus d’arrière-plan, car le processus d’arrière-plan s’arrête chaque fois que vous vérifiez son état au premier plan.
Il est important de laisser les NGEN
processus se terminer. Sois patient. Si vous mettez fin au processus ou redémarrez au milieu, vous pouvez vous retrouver avec des .Net
assemblages partiellement écrits.
Si un processus en arrière-plan, tel que MSCORSVW.EXE
(le service d’optimisationd’ NET
exécution) n’est pas terminé en une journée, vérifiez les processus d’arrière-plan obsolètes. Un redémarrage peut vous aider.
Une fois l’exécution des services suivants terminée, vous pouvez continuer :
ngen.exe
ngentask.exe
mscorsvw.exe
« Une opération d’installation MSI est en cours »
Ce message indique qu’un mutex système (objet d’exclusion mutuelle) nommé Global\_MSIExecute
existe. Le programme d’installation MSI utilise Global\_MSIExecute
pour s’assurer qu’un seul programme d’installation s’exécute à la fois. Si vous êtes certain qu’aucune installation MSI ne se produit, il peut y avoir un verrou sur une ressource. Retournez dans la couche et déterminez quel processus est verrouillé.
« Un redémarrage est en attente pour mettre à jour les pilotes sur le disque de démarrage »
Ce message vous indique qu’un service ou un pilote configuré pour démarrer au moment du démarrage du système a été modifié ou installé. Il est important que le pilote modifié puisse démarrer correctement.
Normalement, vous devez redémarrer une fois, et le pilote fonctionne bien. Nous avons parfois vu des logiciels (comme Microsoft Defender ou McAfee) tenter de modifier son fichier de pilote à chaque démarrage, déclenchant cette vérification d’intégrité à chaque fois. Pas de redémarrages effacer. Vous devrez peut-être utiliser l’option de contourner la vérification de l’intégrité de la couche, comme expliqué dans la section ci-dessous, « Dernier recours ».
NGen
opération Microsoft est nécessaire »
« une Ce message vous indique qu’une application a été installée sur la machine d’packaging et qu’elle a planifié la mise à jour des éléments à un niveau de priorité de 3.
À ce niveau de priorité, l’opération ne s’exécute que lorsque le CPU est inactif, et elle attend qu’il n’y ait plus d’activité.
Pour garantir que l’application fonctionne de la manière la plus optimale sur l’image publiée, App Layering bloque le processus de finalisation, car le NGEN
processus doit s’exécuter sur la machine d’packaging, plutôt que sur chaque machine sur laquelle l’application est déployée.
Avec un NGEN eqi 3
(niveau de priorité 3), vous pouvez soit :
-
Exécutez les opérations non terminées dans les deux répertoires suivants :
c:\windows\microsoft.net\framework\vYY.MM.Build
c:\windows\microsoft.net\framework64\v4.0.30319
-
Attends. L’
NGEN
opération s’exécute généralement seule après 15 minutes de temps d’inactivité.
Les valeurs examinées sont les suivantes :
- HKLM\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\NGenService\Roots\WorkPending
- HKLM\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727\NGenService\Roots\WorkPending
Une valeur de 1 signifie qu’il y a des éléments de travail mis en file d’attente pour être traités.
« Software Center Client est configuré pour s’exécuter, mais le SMSCFG.INI est toujours présent…«
Ce message vous indique que cette machine a été ccmexec.exe
configurée en tant que service et qu’elle n’est pas configurée comme désactivée.
Comme nous savons que toutes les couches créées sur une machine d’packaging doivent être correctement scellées pour être déployées correctement dans un environnement VDI, nous vérifions que le n’ SMSCFG.ini
est pas présent. Il existe un fichier de commandes que vous pouvez exécuter à la toute fin de la couche. Nous avons fourni les commandes à exécuter dans un fichier de commandes par lots que vous pouvez utiliser pour sceller la couche. Connectez-vous à une fenêtre de commande en tant qu’administrateur pour exécuter ce script :
c:\windows\setup\scripts\SEALSCCMCLIENT.cmd
NGen
opération Microsoft
Accélérer une L’ NGEN
exécutable est Microsoft Native Image Generator. Cela fait partie du .NET
système. Ngen
recompile le code .NET
octet en images natives et construit les entrées du Registre. Windows détermine quand s’exécuter en NGEN
fonction de ce qui est installé et de ce que Windows détecte dans la configuration. Quand NGEN
est en cours d’exécution, laissez-le toujours terminer. Une NGEN
opération interrompue peut vous laisser avec des .NET
assemblages infonctionnels ou d’autres problèmes dans le .NET
système.
Vous avez le choix d’attendre que le NGEN
processus se termine en arrière-plan, ou de le forcer au premier plan. Vous pouvez également vérifier l’état de l’ NGEN
opération, comme décrit dans les étapes suivantes. Toutefois, chaque fois que vous vérifiez l’état de la file d’attente, vous créez une activité de premier plan, ce qui peut entraîner une pause temporaire du traitement en arrière-plan.
Amener le NGEN
processus au premier plan vous permet de visualiser les progrès. Vous pouvez finaliser la couche lorsque le processus est terminé.
- Apportez une
NGEN
opération au premier plan. Normalement,NGEN
est une opération en arrière-plan et se met en pause s’il y a une activité de premier plan. La mise en avant de la tâche peut aider la tâche à se terminer le plus rapidement possible. Pour ce faire :- Ouvrez une invite de commandes en tant qu’administrateur.
-
Accédez au répertoire Microsoft .NET Framework pour la version actuellement utilisée :
cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX
- Entrez la
NGEN
commande pour exécuter les éléments en file d’attente :ngen eqi 3 <!--NeedCopy-->
- Cela amène la
NGEN
tâche au premier plan dans l’invite de commande et répertorie les assemblys en cours de compilation.Remarque :
Si vous recevez plusieurs messages « échec de compilation », regardez dans le Gestionnaire des tâches pour voir si une instance de
MSCORSVW.EXE
est en cours d’exécution. Si c’est le cas, laissez-le terminer ou réexécuterNGEN eqi 3
. Ne redémarrez pas pour arrêter la tâche. La tâche doit être terminée.
- Vérifier l’état d’une
NGEN
opération- Ouvrez une invite de commandes en tant qu’administrateur.
- Vérifiez l’état en exécutant cette commande :
NGEN queue status
- Lorsque vous recevez le statut suivant, le
NGEN
est terminé et vous pouvez finaliser la couche. Le.NET Runtime Optimization Service
est arrêté,
Dernier recours pour traiter un problème d’intégrité de la couche (NO recommandé)
Si vous avez une couche qui ne parvient tout simplement pas à finaliser, vous pouvez utiliser une clé de Registre pour indiquer à cette couche d’ignorer ses vérifications d’intégrité de la couche.
Attention : N’utilisez cette clé qu’en dernier recours ! App Layering vous empêche de finaliser dans ces circonstances. Vous permettre de finaliser un couche peut nuire de façon irréparable à la fois au couche et aux images qui incluent le couche. Essayez toujours de résoudre le problème dans Windows d’abord !
Pour ignorer les messages d’intégrité de couche sur une couche (non recommandé) :
-
Exécutez
regedit.exe
et créez cette clé :[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Uniservice: "BypassLayerCheck"=DWORD 1<!--NeedCopy-->
La valeur n’a pas d’importance. Ce qui importe, c’est que la valeur existe. Cette étape bloque les contrôles d’intégrité de la couche sur une couche. Il permet de finaliser le couche, quel que soit le préjudice qu’il peut causer au couche et aux images en couches qui l’incluent.
Dans cet article
- Avertissements sur l’intégrité
- « Un script RunOnce est exceptionnel »
- « Un redémarrage post-installation est en attente »
- « Une ngen opération Microsoft est en cours en arrière-plan »
- « Une opération d’installation MSI est en cours »
- « Un redémarrage est en attente pour mettre à jour les pilotes sur le disque de démarrage »
- « une NGen opération Microsoft est nécessaire »
- « Software Center Client est configuré pour s’exécuter, mais le SMSCFG.INI est toujours présent…«
- Accélérer une NGen opération Microsoft
- Dernier recours pour traiter un problème d’intégrité de la couche (NO recommandé)