Debuggen von Layerintegritätsmeldungen
Wenn Sie die Verpackungsmaschine herunterfahren und Shutdown für Finalizeausführen, wird aufgerufen, uniservice.exe
um den aktuellen Layerintegritätsstatus zu erhalten. Herunterfahren für Finalize überprüft, ob die erforderlichen Prozesse noch ausstehen. Wenn ein erforderlicher Prozess nicht heruntergefahren wird, erhalten Sie eine Meldung über das ausstehende Problem. App Layering schreibt diese Informationen in die folgenden Protokolldateien:
C:\Program Files\Unidesk\Uniservice\Log\LayerIntegrity.txt
C:\Program Files\Unidesk\Uniservice\Log\UniBilcLogs_X.txt
Sie können nicht genau wissen, welche UniBilcLogs
Datei verwendet wird, also suchen Sie nach der Datei mit dem neuesten Zeitstempel. Suchen Sie nach “Integrität”.
Vielleicht denken Sie, dass Sie die Layerintegritätsprüfung umgehen können, indem Sie den Computer herunterfahren und abschließen. Wenn Sie es jedoch versuchen, stoppt die App Layering Appliance die Aufgabe und kehrt Sie zum Verpackungscomputer zurück. Das Script Shutdown for Finalize muss den Prozess zur Layerfinalisierung abschließen.
Warnmeldungen zur Layerintegrität
In den folgenden Layerintegritätsmeldungen erfahren Sie, welche Vorgänge in der Warteschlange abgeschlossen werden müssen, bevor ein Layer fertiggestellt werden kann:
- “Ein RunOnce-Skript steht aus - bitte überprüfen Sie die Verpackungsmaschine und starten Sie sie neu.”
- “Ein Neustart nach der Installation steht aus - bitte überprüfen Sie die Verpackungsmaschine und starten Sie sie neu.”
- “Im Hintergrund läuft ein
ngen
Microsoft-Betrieb. “ - “Ein MSI-Installationsvorgang wird ausgeführt - bitte überprüfen Sie die Verpackungsmaschine.”
- “Ein Neustart steht zur Aktualisierung der Treiber auf der Bootdisk aus. Überprüfen Sie die Verpackungsmaschine und starten Sie sie neu.”
- “Eine Microsoft ngen Operation ist erforderlich.”
- “Software Center Client ist für die Ausführung konfiguriert, aber die SMSCFG.INI ist noch vorhanden.”
Sie können keine Layerintegritätsmeldungen umgehen, indem Sie den Computer herunterfahren. Die App Layering-Software stoppt und bringt Sie zur Verpackungsmaschine zurück, bis alle Prozesse abgeschlossen sind.
Wenn ein Microsoft NGen
-Vorgang läuft, können Sie versuchen, ihn zu beschleunigen, wie im nächsten Abschnitt beschrieben.
“Ein RunOnce-Skript steht aus”
Wenn Sie einen Layer erstellen oder ihm eine Version hinzufügen, können Sie ein Skript angeben, das ausgeführt werden soll, wenn sich ein Benutzer zum ersten Mal anmeldet, nachdem sein Desktop gestartet (oder neu gestartet wird). Sie können beispielsweise ein Skript “Einmal ausführen” verwenden, um das Setup für eine Anwendung abzuschließen.
Ein Run Once-Skript ist eine .bat
Datei .cmd
oder, die auf einem Layer installiert ist.
Nachdem ein Run-Once-Skript auf einem Image ausgeführt wurde, löscht Windows normalerweise die zugeordneten Registrierungsschlüssel, wenn es neu gestartet wird. In dieser Meldung wird angezeigt, dass Windows keinen Schlüssel für ein Run Once-Skript von einem der folgenden Speicherorte gelöscht hat:
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ RunOnce HKEY_LOCAL_MACHINE\ SOFTWARE\ Wow6432Node\ Microsoft\ Windows\ CurrentVersion\ RunOnce
So beheben Sie dieses Problem:
- Wenn die Skriptdatei nicht mehr vorhanden ist, löschen Sie den Registrierungsschlüssel.
- Wenn das in der Nachricht referenzierte Skript vorhanden ist, führen Sie das Skript manuell aus, und löschen Sie dann den Registrierungsschlüssel.
“Ein Neustart nach der Installation steht aus”
Diese Nachricht stammt aus einem der folgenden Registrierungsschlüssel:
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
-
Wenn einer dieser Einträge angezeigt wird, starten Sie den Neustart. Starten Sie bei Bedarf mehrmals neu, bis Sie sicher sind, dass es sich bei der Meldung nicht um eine echte Neustartanforderung handelt.
-
Wenn das Problem bei Net Logon liegt, starten Sie den
Unidesk Service for Message Management
. -
Überprüfen Sie, ob einer der ersten drei Registrierungsschlüssel aus der vorherigen Liste vorhanden ist:
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
-
Ändern Sie einen dieser Schlüssel manuell, um Ihren Anforderungen gerecht zu werden. Wenn Sie die Schlüssel nicht benötigen, können Sie sie löschen.
-
Suchen Sie nach Änderungen im
NetLogon
Schlüssel, um zu sehen, ob:- Der Wert unterscheidet sich von dem, was er beim Start war.
- Der Computername unterscheidet sich vom aktiven Computernamen.
Wenn es eine Diskrepanz gibt, korrigieren Sie die Einstellung.
-
Stellen Sie fest, ob ein Domänenbeitrittsvorgang noch auf einen Neustart wartet.
HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\NETLOGON\Start
HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\ACTIVECOMPUTERNAME
HKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\COMPUTERNAME
Sie können diese drei Registrierungsschlüssel nicht ändern, aber einige Software kann den
NETLOGON\Start
Schlüssel bei jedem Neustart ändern.
Nach dem Bereinigen der ersten drei Schlüssel, die in Schritt #1 aufgeführt sind, erhalten Sie beim Neustart immer noch die Aufforderung. Sie können die Layerintegritätsprüfungen ignorieren. Dies ist jedoch ein letzter Ausweg und wird normalerweise nicht empfohlen. Weitere Informationen zum Ignorieren von Layerintegritätsprüfungen finden Sie im Abschnitt “Letzter Ausweg” am Ende dieses Artikels.
ngen
Microsoft-Betrieb”
“Im Hintergrund läuft ein Diese Nachricht sagt Ihnen, dass eine Vordergrund- oder NGEN
Hintergrundoperation noch läuft. Bei einer NGEN
Operation werden .Net
Assemblys in native Images kompiliert. Die Meldung bedeutet, dass der Prozess noch im Gange ist. Sie können den Fortschritt beobachten.
Warnung:
Starten Sie nicht neu, da dies dazu führen kann, dass der Prozess von vorn beginnt.
Um den Fortschritt im Vordergrund zu beobachten, lauf ngen eqi 3
. Oder warte und fahre ngen queue status
regelmäßig, um zu sehen, wie der Prozess voranschreitet. Denken Sie daran, dass das Laufen den Hintergrundprozess ngen queue status
verlangsamt, da der Hintergrundprozess jedes Mal unterbrochen wird, wenn Sie seinen Status im Vordergrund überprüfen.
Es ist wichtig, dass die NGEN
Prozesse abgeschlossen werden. Seien Sie geduldig. Wenn Sie den Prozess beenden oder in der Mitte neu starten, können Sie am Ende teilweise geschriebene .Net
Assemblys erhalten.
Wenn ein Hintergrundprozess wie MSCORSVW.EXE
(der NET
Runtime Optimization Service) nicht innerhalb eines Tages abgeschlossen ist, suchen Sie nach veralteten Hintergrundprozessen. Ein Neustart könnte helfen.
Nachdem die folgenden Dienste ausgeführt wurden, können Sie fortfahren:
ngen.exe
ngentask.exe
mscorsvw.exe
“Ein MSI-Installationsvorgang wird ausgeführt”
Diese Meldung besagt, dass ein Systemmutex (gegenseitiges Ausschlussobjekt) mit dem Namen Global\_MSIExecute
existiert. Der MSI-Installer Global\_MSIExecute
stellt sicher, dass immer nur ein Installationsprogramm ausgeführt wird. Wenn Sie sicher sind, dass keine MSI-Installationen stattfinden, besteht möglicherweise eine Sperre für eine Ressource. Gehen Sie zurück in die Layer und finden Sie heraus, welcher Prozess gesperrt ist.
“Ein Neustart steht zur Aktualisierung der Treiber auf der Bootdisk aus”
In dieser Meldung wird angezeigt, dass ein Dienst oder Treiber geändert oder installiert wurde, der beim Systemstart gestartet werden soll. Es ist wichtig, dass der geänderte Treiber erfolgreich gestartet werden kann.
Normalerweise müssen Sie einmal neu starten, und der Treiber funktioniert einwandfrei. Wir haben bei einigen Gelegenheiten gesehen, wie Software (wie Microsoft Defender oder McAfee) versucht, ihre Treiberdatei bei jedem Start zu ändern, und diese Integritätsprüfung jedes Mal auslöst. Keine Neustarts löschen Sie es. Möglicherweise müssen Sie die Option zur Umgehung der Layerintegritätsprüfung verwenden, wie im folgenden Abschnitt “Letzter Ausweg” erläutert.
NGen
Microsoft-Vorgang ist erforderlich”
“ein In dieser Meldung wird Ihnen mitgeteilt, dass eine Anwendung auf der Verpackungsmaschine installiert wurde und dass Artikel auf einer Prioritätsstufe von 3aktualisiert werden sollen.
Bei dieser Prioritätsstufe wird der Vorgang nur ausgeführt, wenn sich die CPU im Leerlauf befindet, und er wartet, bis keine Aktivität mehr vorhanden ist.
Um sicherzustellen, dass die Anwendung auf dem veröffentlichten Image optimal ausgeführt wird, blockiert App Layering den Finalisierungsprozess, da der NGEN
Prozess auf dem Verpackungscomputer statt auf jedem Computer ausgeführt werden muss, auf dem Computer, auf dem die App bereitgestellt wird.
Mit einer NGEN eqi 3
(Prioritätsstufe 3) können Sie entweder:
-
Führen Sie die unfertigen Vorgänge in beiden der folgenden Verzeichnisse aus:
c:\windows\microsoft.net\framework\vYY.MM.Build
c:\windows\microsoft.net\framework64\v4.0.30319
-
Warten Sie. Die
NGEN
Operation läuft in der Regel nach 15 Minuten Leerlaufzeit von selbst.
Zu den untersuchten Werten gehören:
- HKLM\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\NGenService\Roots\WorkPending
- HKLM\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727\NGenService\Roots\WorkPending
Ein Wert von 1 bedeutet, dass Arbeitsaufgaben in der Warteschlange stehen, um verarbeitet zu werden.
“Software Center Client ist für die Ausführung konfiguriert, aber die SMSCFG.INI ist noch vorhanden…”
In dieser Meldung wird Ihnen mitgeteilt, dass dieser Computer als Dienst ccmexec.exe
konfiguriert wurde und nicht als deaktiviertkonfiguriert ist.
Da wir wissen, dass alle auf einer Verpackungsmaschine erstellten Layer ordnungsgemäß versiegelt werden müssen, um sie in einer VDI-Umgebung ordnungsgemäß bereitzustellen, prüfen wir, ob die nicht vorhanden SMSCFG.ini
ist. Es gibt eine Befehlsdatei, die Sie am Ende des Layers ausführen können. Wir haben die Befehle zur Ausführung in einer Batch-Befehlsdatei bereitgestellt, die Sie verwenden können, um den Layer zu versiegeln. Melden Sie sich als Administrator in einem Befehlsfenster an, um dieses Skript auszuführen:
c:\windows\setup\scripts\SEALSCCMCLIENT.cmd
NGen
Microsoft-Vorgangs
Beschleunigung eines Die NGEN
ausführbare Datei ist der Microsoft Native Image Generator. Es ist Teil des .NET
Systems. Ngen
kompiliert .NET
Byte-Code in native Images neu und erstellt die Registrierungseinträge. Windows bestimmt, wann ausgeführt werden soll, NGEN
basierend auf dem, was installiert wird und was Windows in der Konfiguration erkennt. Wann NGEN
läuft, lass es immer abschließen. Ein unterbrochener NGEN
Vorgang kann zu nicht funktionierenden .NET
Baugruppen oder anderen Problemen im .NET
System führen.
Sie haben die Wahl, darauf zu warten, dass der NGEN
Prozess im Hintergrund abgeschlossen wird, oder ihn in den Vordergrund zu zwingen. Sie können auch den Status des NGEN
Vorgangs überprüfen, wie in den folgenden Schritten beschrieben. Jedes Mal, wenn Sie den Warteschlangenstatus überprüfen, erstellen Sie jedoch eine Vordergrundaktivität, die dazu führen kann, dass die Hintergrundverarbeitung vorübergehend angehalten wird.
Wenn Sie den NGEN
Prozess in den Vordergrund rücken, können Sie den Fortschritt anzeigen. Sie können den Layer abschließen, wenn der Prozess abgeschlossen ist.
- Bringt eine
NGEN
Operation in den Vordergrund. NormalerweiseNGEN
ist eine Hintergrundoperation und pausiert, wenn Vordergrundaktivitäten vorliegen. Wenn Sie die Aufgabe in den Vordergrund stellen, können Sie die Aufgabe so schnell wie möglich erledigen. Gehen Sie hierzu folgendermaßen vor:- Öffnen Sie eine Eingabeaufforderung als Administrator.
-
Wechseln Sie zum Microsoft.NET Framework-Verzeichnis für die derzeit verwendete Version:
cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX
- Geben Sie den
NGEN
Befehl ein, um die Elemente in der Warteschlange auszuführen:ngen eqi 3 <!--NeedCopy-->
- Dies bringt die
NGEN
Aufgabe in der Eingabeaufforderung in den Vordergrund und listet die zu kompilierenden Assemblys auf.Hinweis:
Wenn Sie mehrere “Kompilierungsfehler” erhalten, sehen Sie im Task-Manager nach, ob eine Instanz von ausgeführt
MSCORSVW.EXE
wird. Wenn dies der Fall ist, lassen Sie es abschließen oder erneut ausführenNGEN eqi 3
. Starten Sie nicht neu, um die Aufgabe zu beenden. Die Aufgabe muss abgeschlossen sein.
- Überprüfen Sie den Status einer
NGEN
Operation- Öffnen Sie eine Eingabeaufforderung als Administrator.
- Überprüfen Sie den Status, indem Sie diesen Befehl ausführen:
NGEN queue status
- Wenn Sie den folgenden Status erhalten,
NGEN
ist der abgeschlossen, und Sie können den Layer finalisieren. Das.NET Runtime Optimization Service
ist gestoppt,
Letzte Ausweg für die Behandlung eines Problems mit der Layerintegrität (NICHT empfohlen)
Wenn Sie einen Layer haben, der einfach nicht abgeschlossen werden kann, können Sie einen Registrierungsschlüssel verwenden, um zu sagen, dass ein Layer seine Layerintegritätsprüfungen ignorieren soll.
Achtung: Benutzen Sie diesen Schlüssel nur als letztes Mittel! App Layering blockiert Sie unter diesen Umständen von der Fertigstellung. Das Abschließen eines Layers kann sowohl dem Layer als auch den Images, die die Layer enthalten, irreparabel schaden. Versuchen Sie immer zuerst, das Problem innerhalb von Windows zu lösen!
So ignorieren Sie Layerintegritätsmeldungen auf einem Layer (nicht empfohlen):
-
Führen Sie diesen Schlüssel aus
regedit.exe
und erstellen Sie:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Uniservice: "BypassLayerCheck"=DWORD 1<!--NeedCopy-->
Der Wert spielt keine Rolle. Wichtig ist, dass der Wert existiert. Dieser Schritt blockiert Layerintegritätsprüfungen für einen Layer. Damit kann der Layer endgültig abgeschlossen werden, unabhängig davon, welchen Schaden sie für den Layer und die Layerimages verursachen kann.
In diesem Artikel
- Warnmeldungen zur Layerintegrität
- “Ein RunOnce-Skript steht aus”
- “Ein Neustart nach der Installation steht aus”
- “Im Hintergrund läuft ein ngen Microsoft-Betrieb”
- “Ein MSI-Installationsvorgang wird ausgeführt”
- “Ein Neustart steht zur Aktualisierung der Treiber auf der Bootdisk aus”
- “ein NGen Microsoft-Vorgang ist erforderlich”
- “Software Center Client ist für die Ausführung konfiguriert, aber die SMSCFG.INI ist noch vorhanden…”
- Beschleunigung eines NGen Microsoft-Vorgangs
- Letzte Ausweg für die Behandlung eines Problems mit der Layerintegrität (NICHT empfohlen)