Debug-Layer-Integritätsmeldungen
Wenn Sie die Packaging Machine herunterfahren und Shutdown for Finalize ausführen, ruft sie uniservice.exe auf, um den aktuellen Integritätsstatus der Ebene abzurufen. Shutdown for Finalize prüft, ob noch erforderliche Prozesse 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. Suchen Sie daher nach der Datei mit dem neuesten Zeitstempel. Suchen Sie nach „Integrity“.
Sie könnten meinen, Sie könnten die Layer-Integritätsprüfung umgehen, indem Sie die Maschine herunterfahren und finalisieren. Wenn Sie dies jedoch versuchen, stoppt die App Layering Appliance die Aufgabe und kehrt zur Packaging Machine zurück. Das Skript Shutdown for Finalize muss den Layer-Finalisierungsprozess abschließen.
Layer-Integritätswarnungen
Die folgenden Layer-Integritätsmeldungen informieren Sie darüber, welche Operationen abgeschlossen werden müssen, bevor ein Layer zur Finalisierung bereit ist:
- „Ein RunOnce-Skript steht aus – bitte überprüfen Sie die Packaging Machine und starten Sie sie neu.“
- „Ein Neustart nach der Installation steht aus – bitte überprüfen Sie die Packaging Machine und starten Sie sie neu.“
- „Eine Microsoft
ngen-Operation läuft im Hintergrund.“ - „Eine MSI-Installationsoperation läuft – bitte überprüfen Sie die Packaging Machine.“
- „Ein Neustart steht aus, um Treiber auf der Startdiskette zu aktualisieren – bitte überprüfen Sie die Packaging Machine und starten Sie sie neu.“
- „Eine Microsoft ngen-Operation ist erforderlich.“
- „Der Software Center Client ist zur Ausführung konfiguriert, aber die SMSCFG.INI ist noch vorhanden.“
Sie können Layer-Integritätsmeldungen nicht umgehen, indem Sie die Maschine herunterfahren. Die App Layering-Software stoppt und kehrt zur Packaging Machine zurück, bis alle Prozesse abgeschlossen sind.
Wenn eine Microsoft NGen-Operation läuft, können Sie versuchen, diese zu beschleunigen, wie im nächsten Abschnitt beschrieben.
„Ein RunOnce-Skript steht aus“
Wenn Sie einen Layer erstellen oder eine Version hinzufügen, können Sie ein Skript angeben, das beim ersten Login eines Benutzers nach dem Start (oder Neustart) seines Desktops ausgeführt wird. Sie können beispielsweise ein Run Once-Skript verwenden, um die Einrichtung einer Anwendung abzuschließen.
Ein Run Once-Skript ist eine .cmd- oder .bat-Datei, die auf einem Layer installiert ist.
Nachdem ein Run Once-Skript auf einem Image ausgeführt wurde, löscht Windows normalerweise die zugehörigen Registrierungsschlüssel beim Neustart. Diese Meldung weist darauf hin, dass Windows einen Schlüssel für ein Run Once-Skript nicht 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
Um dieses Problem zu beheben:
- Wenn die Skriptdatei nicht mehr existiert, löschen Sie den Registrierungsschlüssel.
- Wenn das in der Meldung referenzierte Skript existiert, führen Sie das Skript manuell aus und löschen Sie anschließend den Registrierungsschlüssel.
„Ein Neustart nach der Installation steht aus“
Diese Meldung stammt von einem der folgenden Registrierungsschlüssel:
HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperationsHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPendingHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequiredHKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\NETLOGON\StartHKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\ACTIVECOMPUTERNAMEHKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\COMPUTERNAME
-
Wenn Sie einen dieser Einträge sehen, beginnen Sie mit einem Neustart. Starten Sie bei Bedarf mehrmals neu, bis Sie sicher sind, dass die Meldung keine echte Neustartanforderung einer Software ist.
-
Wenn das Problem bei Net Logon liegt, starten Sie den
Unidesk Service for Message Managementneu. -
Prüfen Sie das Vorhandensein eines der ersten drei Registrierungsschlüssel aus der vorherigen Liste:
HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperationsHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPendingHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired
-
Ändern Sie diese Schlüssel manuell nach Ihren Bedürfnissen. Wenn Sie die Schlüssel nicht benötigen, können Sie sie löschen.
-
Suchen Sie nach Änderungen im
NetLogon-Schlüssel, um festzustellen, ob:- Der Wert sich von dem beim Start unterschied.
- Der Computername sich vom aktiven Computernamen unterscheidet.
Wenn eine Diskrepanz vorliegt, korrigieren Sie die Einstellung.
-
Stellen Sie fest, ob ein Domänenbeitrittsvorgang noch auf einen Neustart wartet.
HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\NETLOGON\StartHKLM\SYSTEM\CURRENTCONTROLSET\CONTROL\COMPUTERNAME\ACTIVECOMPUTERNAMEHKLM\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.
Wenn Sie nach dem Bereinigen der ersten drei in Schritt #1 aufgeführten Schlüssel immer noch die Aufforderung zum Neustart erhalten, können Sie die Layer-Integritätsprüfungen ignorieren. Dies ist jedoch ein letzter Ausweg und wird normalerweise nicht empfohlen. Details zum Ignorieren von Layer-Integritätsprüfungen finden Sie im Abschnitt „Letzter Ausweg“ am Ende dieses Artikels.
„Eine Microsoft ngen-Operation läuft im Hintergrund“
Diese Meldung weist darauf hin, dass eine NGEN-Operation im Vordergrund oder Hintergrund noch läuft. Eine NGEN-Operation ist ein Vorgang, bei dem .Net-Assemblies in native Images kompiliert werden. Die Meldung bedeutet, dass der Prozess noch läuft. Sie können den Fortschritt beobachten.
Warnung:
Führen Sie keinen Neustart durch, da dies dazu führen kann, dass der Prozess von vorne beginnt.
Um den Fortschritt im Vordergrund zu beobachten, führen Sie ngen eqi 3 aus. Oder warten Sie und führen Sie ngen queue status regelmäßig aus, um zu sehen, wie der Prozess voranschreitet. Beachten Sie, dass das Ausführen von ngen queue status den Hintergrundprozess verlangsamt, da der Hintergrundprozess jedes Mal pausiert, wenn Sie seinen Status im Vordergrund überprüfen.
Es ist wichtig, die NGEN-Prozesse abschließen zu lassen. Seien Sie geduldig. Wenn Sie den Prozess abbrechen oder mitten im Vorgang neu starten, können Sie mit teilweise geschriebenen .Net-Assemblies enden.
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.
Sobald die folgenden Dienste ihre Ausführung beendet haben, können Sie fortfahren:
ngen.exengentask.exemscorsvw.exe
„Eine MSI-Installationsoperation läuft“
Diese Meldung besagt, dass ein System-Mutex (Mutual Exclusion Object) namens Global\_MSIExecute existiert. Der MSI-Installer verwendet Global\_MSIExecute, um sicherzustellen, dass nur ein Installer gleichzeitig ausgeführt wird. Wenn Sie sicher sind, dass keine MSI-Installationen stattfinden, könnte eine Ressource gesperrt sein. Gehen Sie zurück in den Layer und finden Sie heraus, welcher Prozess gesperrt ist.
„Ein Neustart steht aus, um Treiber auf der Startdiskette zu aktualisieren“
Diese Meldung weist darauf hin, dass ein Dienst oder Treiber, der zum Systemstart konfiguriert ist, geändert oder installiert wurde. Es ist wichtig, dass der geänderte Treiber erfolgreich starten kann.
Normalerweise müssen Sie einmal neu starten, und der Treiber funktioniert einwandfrei. Wir haben gelegentlich Software (wie Microsoft Defender oder McAfee) gesehen, die versucht, ihre Treiberdatei bei jedem Start zu ändern, wodurch diese Integritätsprüfung jedes Mal ausgelöst wird. Kein Neustart behebt dies. Möglicherweise müssen Sie die Option zum Umgehen der Layer-Integritätsprüfung verwenden, wie im Abschnitt „Letzter Ausweg“ unten erläutert.
„Eine Microsoft NGen-Operation ist erforderlich“
Diese Meldung weist darauf hin, dass eine Anwendung auf der Packaging Machine installiert wurde und Elemente zur Aktualisierung mit einer Prioritätsstufe von 3 geplant hat.
Bei dieser Prioritätsstufe wird der Vorgang nur ausgeführt, wenn die CPU im Leerlauf ist, und er wartet, bis keine weitere Aktivität mehr vorhanden ist.
Um sicherzustellen, dass die Anwendung auf dem veröffentlichten Image optimal läuft, blockiert App Layering den Finalisierungsprozess, da der NGEN-Prozess auf der Packaging Machine ausgeführt werden muss und nicht auf jeder Maschine, auf der die App bereitgestellt wird.
Mit einem NGEN eqi 3 (Prioritätsstufe 3) können Sie entweder:
-
Die unvollendeten Operationen in beiden folgenden Verzeichnissen ausführen:
c:\windows\microsoft.net\framework\vYY.MM.Buildc:\windows\microsoft.net\framework64\v4.0.30319
-
Warten. Die
NGEN-Operation läuft normalerweise von selbst nach 15 Minuten Leerlaufzeit.
Die untersuchten Werte umfassen:
- 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 Arbeitselemente zur Verarbeitung in der Warteschlange stehen.
„Software Center Client ist zur Ausführung konfiguriert, aber die SMSCFG.INI ist noch vorhanden….“
Diese Meldung weist darauf hin, dass auf dieser Maschine ccmexec.exe als Dienst konfiguriert ist und nicht als deaktiviert.
Da wir wissen, dass alle auf einer Packaging Machine erstellten Layer ordnungsgemäß versiegelt werden müssen, um in einer VDI-Umgebung korrekt bereitgestellt zu werden, prüfen wir, ob die SMSCFG.ini nicht vorhanden ist. Es gibt eine Befehlsdatei, die Sie ganz am Ende des Layers ausführen können. Wir haben die auszuführenden Befehle in einer Batch-Befehlsdatei bereitgestellt, die Sie zum Versiegeln des Layers verwenden können. Melden Sie sich als Administrator an einem Befehlsfenster an, um dieses Skript auszuführen:
c:\windows\setup\scripts\SEALSCCMCLIENT.cmd
Beschleunigung einer Microsoft NGen-Operation
Die ausführbare Datei NGEN ist der Microsoft Native Image Generator. Sie ist Teil des .NET-Systems. Ngen kompiliert .NET-Bytecode in native Images und erstellt die Registrierungseinträge. Windows bestimmt, wann NGEN ausgeführt werden soll, basierend auf dem, was installiert wird und was Windows in der Konfiguration erkennt. Wenn NGEN läuft, lassen Sie es immer abschließen. Eine unterbrochene NGEN-Operation kann zu nicht funktionierenden .NET-Assemblies oder anderen Problemen im .NET-System führen.
Sie haben die Wahl, entweder darauf zu warten, dass der NGEN-Prozess im Hintergrund abgeschlossen wird, oder ihn in den Vordergrund zu zwingen. Sie können auch den Status der NGEN-Operation überprüfen, wie in den folgenden Schritten beschrieben. Beachten Sie jedoch, dass jedes Mal, wenn Sie den Warteschlangenstatus überprüfen, eine Vordergrundaktivität erzeugt wird, die dazu führen kann, dass die Hintergrundverarbeitung vorübergehend pausiert.
Das Verschieben des NGEN-Prozesses in den Vordergrund ermöglicht es Ihnen, den Fortschritt anzuzeigen. Sie können den Layer finalisieren, wenn der Prozess abgeschlossen ist.
- Bringen Sie eine
NGEN-Operation in den Vordergrund. Normalerweise istNGENein Hintergrundvorgang und pausiert, wenn Vordergrundaktivität vorhanden ist. Das Verschieben der Aufgabe in den Vordergrund kann dazu beitragen, dass die Aufgabe so schnell wie möglich abgeschlossen wird. Gehen Sie dazu wie folgt vor:- Öffnen Sie eine Eingabeaufforderung als Administrator.
-
Wechseln Sie in das Microsoft .NET Framework-Verzeichnis für die aktuell verwendete Version:
cd C:\Windows\Microsoft.NET\FrameworkNN\vX.X.XXXXX - Geben Sie den
NGEN-Befehl ein, um die in der Warteschlange befindlichen Elemente auszuführen:ngen eqi 3 <!--NeedCopy--> - Dies bringt die
NGEN-Aufgabe in der Eingabeaufforderung in den Vordergrund und listet die zu kompilierenden Assemblies auf.Hinweis:
Wenn Sie mehrere „Kompilierung fehlgeschlagen“-Meldungen erhalten, prüfen Sie im Task-Manager, ob eine Instanz von
MSCORSVW.EXEausgeführt wird. Wenn ja, lassen Sie sie abschließen oder führen SieNGEN eqi 3erneut aus. Starten Sie nicht neu, um die Aufgabe zu beenden. Die Aufgabe muss abgeschlossen werden.
- Ü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, ist die
NGEN-Operation abgeschlossen, und Sie können den Layer finalisieren. Der.NET Runtime Optimization Serviceist beendet.
Letzter Ausweg zur Behebung eines Layer-Integritätsproblems (NICHT empfohlen)
Wenn Sie einen Layer haben, der sich einfach nicht finalisieren lässt, können Sie einen Registrierungsschlüssel verwenden, um diesem Layer mitzuteilen, seine Layer-Integritätsprüfungen zu ignorieren.
Warnung: Verwenden Sie diesen Schlüssel nur als letzten Ausweg! App Layering hindert Sie unter diesen Umständen an der Finalisierung. Wenn Sie einen Layer finalisieren, kann dies sowohl den Layer als auch die Images, die den Layer enthalten, irreparabel schädigen. Versuchen Sie immer zuerst, das Problem innerhalb von Windows zu lösen!
So ignorieren Sie Layer-Integritätsmeldungen auf einem Layer (nicht empfohlen):
-
Führen Sie
regedit.exeaus und erstellen Sie diesen Schlüssel:[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 Layer-Integritätsprüfungen auf einem Layer. Er ermöglicht die Finalisierung des Layers, unabhängig von dem Schaden, den er dem Layer und den geschichteten Images, die ihn enthalten, zufügen kann.
In diesem Artikel
- Layer-Integritätswarnungen
- „Ein RunOnce-Skript steht aus“
- „Ein Neustart nach der Installation steht aus“
- „Eine Microsoft ngen-Operation läuft im Hintergrund“
- „Eine MSI-Installationsoperation läuft“
- „Ein Neustart steht aus, um Treiber auf der Startdiskette zu aktualisieren“
- „Eine Microsoft NGen-Operation ist erforderlich“
- „Software Center Client ist zur Ausführung konfiguriert, aber die SMSCFG.INI ist noch vorhanden….“
- Beschleunigung einer Microsoft NGen-Operation
- Letzter Ausweg zur Behebung eines Layer-Integritätsproblems (NICHT empfohlen)