Debug-Meldungen zur Ebenenintegrität
Wenn Sie die Verpackungsmaschine herunterfahren und Herunterfahren zur Finalisierung ausführen, ruft sie uniservice.exe auf, um den aktuellen Integritätsstatus der Ebene abzurufen. Herunterfahren zur Finalisierung 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 denken, dass Sie die Ebenenintegritätsprüfung umgehen können, indem Sie die Maschine herunterfahren und finalisieren. Wenn Sie dies jedoch versuchen, stoppt die App Layering Appliance den Vorgang und kehrt zur Verpackungsmaschine zurück. Das Skript Herunterfahren zur Finalisierung muss den Ebenenfinalisierungsprozess abschließen.
Ebenenintegritätswarnungen
Die folgenden Ebenenintegritätsmeldungen informieren Sie darüber, welche Operationen abgeschlossen werden müssen, bevor eine Ebene zur Finalisierung bereit ist:
- „Ein RunOnce-Skript steht noch aus – bitte überprüfen und starten Sie die Verpackungsmaschine neu.“
- „Ein Neustart nach der Installation steht aus – bitte überprüfen und starten Sie die Verpackungsmaschine neu.“
- „Eine Microsoft
ngen-Operation läuft im Hintergrund.“ - „Eine MSI-Installationsoperation läuft – bitte überprüfen Sie die Verpackungsmaschine.“
- „Ein Neustart zum Aktualisieren von Treibern auf der Startdiskette steht aus – bitte überprüfen und starten Sie die Verpackungsmaschine 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 Ebenenintegritätsmeldungen nicht umgehen, indem Sie die Maschine herunterfahren. Die App Layering Software stoppt und kehrt zur Verpackungsmaschine 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 noch aus“
Wenn Sie eine Ebene erstellen oder eine Version hinzufügen, können Sie ein Skript angeben, das beim ersten Anmelden 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 einer Ebene 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 dieser 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 dann 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 durch eine Software ist.
-
Wenn das Problem bei Net Logon liegt, starten Sie den
Unidesk Service for Message Managementneu. -
Überprü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 zu prüfen, ob:- Der Wert sich von dem beim Start unterscheidet.
- Der Computername sich vom aktiven Computernamen unterscheidet.
Wenn es eine Diskrepanz gibt, korrigieren Sie die Einstellung.
-
Ermitteln Sie, 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 Ebenenintegritätsprüfungen ignorieren. Dies ist jedoch ein letzter Ausweg und wird normalerweise nicht empfohlen. Details zum Ignorieren von Ebenenintegritä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:
Starten Sie nicht neu, 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-Laufzeit-Optimierungsdienst), nicht innerhalb eines Tages abgeschlossen ist, suchen Sie nach veralteten Hintergrundprozessen. Ein Neustart könnte helfen.
Sobald die folgenden Dienste abgeschlossen sind, 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 die Ebene und finden Sie heraus, welcher Prozess gesperrt ist.
„Ein Neustart zum Aktualisieren von Treibern auf der Startdiskette steht aus“
Diese Meldung weist darauf hin, dass ein Dienst oder Treiber, der zum Systemstartzeitpunkt gestartet werden soll, 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. Keine Neustarts beheben dies. Möglicherweise müssen Sie die Option zum Umgehen der Ebenenintegritä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 Verpackungsmaschine 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 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 der Verpackungsmaschine ausgeführt werden muss, anstatt auf jeder Maschine, auf der die App bereitgestellt wird.
Mit einem NGEN eqi 3 (Prioritätsstufe 3) können Sie entweder:
-
Führen Sie die unvollendeten Operationen in beiden folgenden Verzeichnissen aus:
c:\windows\microsoft.net\framework\vYY.MM.Buildc:\windows\microsoft.net\framework64\v4.0.30319
-
Warten Sie. Die
NGEN-Operation wird typischerweise nach 15 Minuten Leerlaufzeit von selbst ausgeführt.
Die untersuchten Werte umfassen:
HKLM\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\NGenService\Roots\WorkPendingHKLM\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727\NGenService\Roots\WorkPending
Ein Wert von 1 bedeutet, dass Arbeitselemente zur Verarbeitung in der Warteschlange stehen.
„Der 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 konfiguriert ist.
Da wir wissen, dass alle auf einer Verpackungsmaschine erstellten Ebenen ordnungsgemäß versiegelt werden müssen, um in einer VDI-Umgebung korrekt bereitgestellt zu werden, überprüfen wir, ob die SMSCFG.ini nicht vorhanden ist. Es gibt eine Befehlsdatei, die Sie ganz am Ende der Ebene ausführen können. Wir haben die auszuführenden Befehle in einer Batch-Befehlsdatei bereitgestellt, die Sie zum Versiegeln der Ebene verwenden können. Melden Sie sich als Administrator in einem Befehlsfenster an, um dieses Skript auszuführen:
c:\windows\setup\scripts\SEALSCCMCLIENT.cmd
Beschleunigen 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. Jedes Mal, wenn Sie den Warteschlangenstatus überprüfen, erzeugen Sie jedoch Vordergrundaktivität, was dazu führen kann, dass die Hintergrundverarbeitung vorübergehend pausiert.
Das Bringen des NGEN-Prozesses in den Vordergrund ermöglicht es Ihnen, den Fortschritt anzuzeigen. Sie können die Ebene 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 Bringen 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, überprü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 die Ebene finalisieren. Der.NET Runtime Optimization Serviceist beendet,
Letzter Ausweg zur Behebung eines Ebenenintegritätsproblems (NICHT empfohlen)
Wenn Sie eine Ebene haben, die sich einfach nicht finalisieren lässt, können Sie einen Registrierungsschlüssel verwenden, um dieser Ebene mitzuteilen, ihre Ebenenintegritä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 eine Ebene finalisieren, kann dies sowohl die Ebene als auch die Images, die die Ebene enthalten, irreparabel schädigen. Versuchen Sie immer zuerst, das Problem innerhalb von Windows zu lösen!
So ignorieren Sie Ebenenintegritätsmeldungen auf einer Ebene (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 Ebenenintegritätsprüfungen auf einer Ebene. Er ermöglicht die Finalisierung der Ebene, unabhängig von dem Schaden, den dies der Ebene und den geschichteten Images, die sie enthalten, zufügen kann.
In diesem Artikel
- Ebenenintegritätswarnungen
- „Ein RunOnce-Skript steht noch aus“
- „Ein Neustart nach der Installation steht aus“
- „Eine Microsoft ngen-Operation läuft im Hintergrund“
- „Eine MSI-Installationsoperation läuft“
- „Ein Neustart zum Aktualisieren von Treibern auf der Startdiskette steht aus“
- „Eine Microsoft NGen-Operation ist erforderlich“
- „Der Software Center Client ist zur Ausführung konfiguriert, aber die SMSCFG.INI ist noch vorhanden….“
- Beschleunigen einer Microsoft NGen-Operation
- Letzter Ausweg zur Behebung eines Ebenenintegritätsproblems (NICHT empfohlen)