Tasksequenzfehler in Configuration Manager, wenn Softwareupdates mehrere Neustarts erfordern

Dieser Artikel enthält informationen zum Beheben des Problems, dass der Fehler Tasksequenzumgebung nicht gefunden auftritt, wenn eine Configuration Manager Tasksequenz verwendet wird.

Ursprüngliche Produktversion: Microsoft System Center 2012 Configuration Manager, Microsoft System Center 2012 R2 Configuration Manager, Configuration Manager (Current Branch)
Ursprüngliche KB-Nummer: 2894518

Zusammenfassung

Das Problem wurde in kumulativem Update 3 für System Center 2012 Configuration Manager Service Pack 2 und System Center 2012 R2 Configuration Manager Service Pack 1 sowie in Configuration Manager Current Branch Version 1602 behoben.

Eine neue optionale Tasksequenzvariable, , ist verfügbar, SMSTSWaitForSecondRebootum das Clientverhalten besser zu steuern, wenn eine Softwareupdateinstallation zwei Neustarts erfordert.

Weitere Informationen finden Sie im Abschnitt Softwareupdateverwaltung/Betriebssystembereitstellung unter Beschreibung des kumulativen Updates 3 für Configuration Manager.

Informationen Configuration Manager current branch finden Sie unter Tasksequenzvariablen.

Symptome

Angenommen, eine Configuration Manager Tasksequenz, die den Schritt Software installieren Updates verwendet, installiert ein Softwareupdate, das mehrere Neustarts auslöst, nachdem die Tasksequenz den Task Software installieren Updates erfolgreich ausgeführt hat. In diesem Fall kann die Tasksequenz fehlschlagen und die folgende Fehlermeldung generieren:

Tasksequenzumgebung nicht gefunden

Hinweis

Sie können dieses Problem in Configuration Manager vermeiden, indem Sie die neue Option Wiederholen im Tasksequenzschritt Software installieren Updates verwenden.

Ursache

Der erste Neustart, der durch das Softwareupdate initiiert wird, wird von der Tasksequenz gesteuert. Die zweite Neustartanforderung wird jedoch von einer Windows-Komponente (in der Regel Component-Based Servicing) initiiert und nicht von der Tasksequenz gesteuert. Daher wird der Ausführungszustand der Tasksequenz vor dem Neustart nicht gespeichert, da der zweite Neustart nicht von der Tasksequenz gesteuert wird. Wenn die Tasksequenz nach dem zweiten Neustart fortgesetzt wird, ist kein Zustand verfügbar, um erfolgreich fortzufahren.

Lösung

Um dieses Problem zu beheben, empfehlen wir, alle Updates anzuwenden, die einen doppelten Neustart erfordern, indem Sie das übliche Softwareupdatefeature von Configuration Manager anstelle von Tasksequenzen verwenden. Für die folgenden Softwareupdates wurden mehrere Neustarts gemeldet.

Weitere Informationen

Da dieser zweite Neustart nicht von der Tasksequenz gesteuert wird, wird vor dem Neustart kein Ausführungszustand gespeichert. Wenn die Tasksequenz nach dem Neustart fortgesetzt wird, ist kein Zustand verfügbar, um erfolgreich fortzufahren. Darüber hinaus kann die folgende Meldung in der Smsts.log-Datei protokolliert werden, wenn dieses Problem aufgetreten ist:

!sVolumeID.empty(), HRESULT=80004005
!sTSMDataPath.empty(), HRESULT=80070002
TS::Utility::GetTSMDataPath( sDataDir ), HRESULT=80070002
Fehler beim Festlegen des Protokollverzeichnisses. Ein Teil des Ausführungsverlaufs geht möglicherweise verloren.
Die angegebene Datei wurde nicht gefunden. (Fehler: 80070002; Quelle: Windows)
Ausführen der Tasksequenz
!sVolumeID.empty(), HRESULT=80004005
!sTSMDataPath.empty(), HRESULT=80070002
Tasksequenzumgebung nicht gefunden

Außerdem können Clients, auf denen Frühere Versionen als Microsoft System Center 2012 Configuration Manager Service Pack 1 ausgeführt werden, den folgenden Protokolleintrag enthalten:

Tasksequenz in Windows PE abgeschlossen.

Der Clientcomputer bleibt möglicherweise auch im Bereitstellungsmodus hängen, nachdem die Tasksequenz fehlschlägt. Überprüfen Sie den Registrierungsunterschlüssel, um festzustellen, ob sich der HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CCM\CcmExec Computer im Bereitstellungsmodus befindet.

ProvisioningMode sollte auf false festgelegt werden. Wenn sie auf TRUE festgelegt ist, verwenden Sie eine der folgenden Methoden, um den Client aus dem Bereitstellungsmodus zu löschen:

  • Verwenden Sie die WMI-Methode SetClientProvisioningMode (Windows-Verwaltungsinstrumentation), um den Client ordnungsgemäß aus dem Bereitstellungsmodus zu entfernen. Führen Sie hierzu am einfachsten den folgenden Windows PowerShell Befehl aus:

    Invoke-WmiMethod -Namespace root\CCM -Class SMS_Client -Name SetClientProvisioningMode -ArgumentList $false
    

    Oder führen Sie den folgenden Befehl an einer Eingabeaufforderung mit erhöhten Rechten aus:

    powershell Invoke-WmiMethod -Namespace root\CCM -Class SMS_Client -Name SetClientProvisioningMode -ArgumentList $false
    
  • Installieren Sie den Client neu.

Wichtig

Versuchen Sie nicht, den Client zu beheben, indem Sie den Wert von ProvisioningMode in false ändern. Durch diese Aktion wird der Client nicht vollständig aus dem Bereitstellungsmodus beendet.