Sekwencja zadań kończy się niepowodzeniem w Configuration Manager, jeśli aktualizacje oprogramowania wymagają wielokrotnego ponownego uruchomienia

Ten artykuł zawiera informacje umożliwiające rozwiązanie problemu polegającego na tym, że nie znaleziono błędu środowiska sekwencji zadań podczas korzystania z sekwencji zadań Configuration Manager.

Oryginalna wersja produktu: Microsoft System Center 2012 Configuration Manager, Microsoft System Center 2012 R2 Configuration Manager, Configuration Manager (bieżąca gałąź)
Oryginalny numer KB: 2894518

Podsumowanie

Problem został rozwiązany w aktualizacji zbiorczej 3 dla programu System Center 2012 Configuration Manager Service Pack 2 i System Center 2012 R2 Configuration Manager dodatku Service Pack 1 oraz w Configuration Manager bieżącej wersji gałęzi 1602.

Nowa opcjonalna zmienna sekwencji zadań , SMSTSWaitForSecondRebootjest dostępna, aby lepiej kontrolować zachowanie klienta, gdy instalacja aktualizacji oprogramowania wymaga dwóch ponownych uruchomień.

Aby uzyskać więcej informacji, zobacz sekcję Zarządzanie aktualizacjami oprogramowania/wdrażanie systemu operacyjnego w opisie aktualizacji zbiorczej 3 dla Configuration Manager.

Aby uzyskać Configuration Manager bieżącej gałęzi, zobacz Zmienne sekwencji zadań.

Symptomy

Załóżmy, że sekwencja zadań Configuration Manager używająca kroku Zainstaluj oprogramowanie Aktualizacje instaluje aktualizację oprogramowania, która wyzwala wiele ponownych uruchomień po pomyślnym uruchomieniu zadania Zainstaluj oprogramowanie Aktualizacje. W takiej sytuacji sekwencja zadań może zakończyć się niepowodzeniem i wygenerować następujący komunikat o błędzie:

Nie można odnaleźć środowiska sekwencji zadań

Uwaga

Ten problem można uniknąć w Configuration Manager przy użyciu nowej opcji Ponów próbę w kroku Sekwencja zadań Zainstaluj oprogramowanie Aktualizacje.

Przyczyna

Pierwsze ponowne uruchomienie zainicjowane przez aktualizację oprogramowania jest kontrolowane przez sekwencję zadań. Jednak drugie żądanie ponownego uruchomienia jest inicjowane przez składnik systemu Windows (zazwyczaj Component-Based obsługa) i nie jest kontrolowane przez sekwencję zadań. W związku z tym stan wykonywania sekwencji zadań nie jest zapisywany przed ponownym uruchomieniem, ponieważ drugie ponowne uruchomienie nie jest kontrolowane przez sekwencję zadań. Po wznowieniu sekwencji zadań po drugim ponownym uruchomieniu nie jest dostępny żaden stan, aby kontynuować pomyślnie.

Rozwiązanie

Aby rozwiązać ten problem, zalecamy zastosowanie wszelkich aktualizacji, które wymagają podwójnego ponownego uruchomienia przy użyciu zwykłej funkcji aktualizacji oprogramowania Configuration Manager zamiast korzystania z sekwencji zadań. Zgłoszono następujące aktualizacje oprogramowania, które wymagają wielu ponownych uruchomień.

Więcej informacji

Ponieważ to drugie ponowne uruchomienie nie jest kontrolowane przez sekwencję zadań, przed ponownym uruchomieniem nie jest zapisywany żaden stan wykonywania. Po wznowieniu sekwencji zadań po ponownym uruchomieniu nie jest dostępny żaden stan, aby kontynuować pomyślnie. Ponadto następujący komunikat może zostać zarejestrowany w pliku Smsts.log, gdy wystąpi ten problem:

!sVolumeID.empty(), HRESULT=80004005
!sTSMDataPath.empty(), HRESULT=80070002
TS::Utility::GetTSMDataPath( sDataDir ), HRESULT=80070002
Nie można ustawić katalogu dziennika. Część historii wykonywania może zostać utracona.
Nie można odnaleźć określonego pliku. (Błąd: 80070002; Źródło: Windows)
Wykonywanie sekwencji zadań
!sVolumeID.empty(), HRESULT=80004005
!sTSMDataPath.empty(), HRESULT=80070002
Nie można odnaleźć środowiska sekwencji zadań

Ponadto klienci z uruchomionymi wersjami wersji wcześniejszych niż Microsoft System Center 2012 Configuration Manager Service Pack 1 mogą zawierać następujący wpis dziennika:

Sekwencja zadań została ukończona w systemie Windows PE.

Komputer kliencki może również zostać zablokowany w trybie aprowizacji po awarii sekwencji zadań. Aby określić, czy komputer jest w trybie aprowizacji, sprawdź podklucz HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CCM\CcmExec rejestru.

ProvisioningMode wartość false powinna być ustawiona na wartość false. Jeśli jest ustawiona wartość true, użyj jednej z następujących metod, aby wyjąć klienta z trybu aprowizacji:

  • Użyj metody SetClientProvisioningMode Instrumentacja zarządzania windows (WMI), aby prawidłowo wyjąć klienta z trybu aprowizacji. Najprostszym sposobem na to jest uruchomienie następującego polecenia Windows PowerShell:

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

    Możesz też uruchomić następujące polecenie w wierszu polecenia z podwyższonym poziomem uprawnień:

    powershell Invoke-WmiMethod -Namespace root\CCM -Class SMS_Client -Name SetClientProvisioningMode -ArgumentList $false
    
  • Zainstaluj ponownie klienta.

Ważna

Nie próbuj naprawiać klienta, zmieniając wartość ProvisioningMode wartości na false. Ta akcja nie spowoduje całkowitego wyjścia klienta z trybu aprowizacji.