La sequenza di attività ha esito negativo in Configuration Manager se gli aggiornamenti software richiedono più riavvii

Questo articolo fornisce le informazioni per risolvere il problema per cui l'errore dell'ambiente della sequenza di attività non è stato trovato quando si usa una sequenza di attività Configuration Manager.

Versione originale del prodotto: Microsoft System Center 2012 Configuration Manager, Microsoft System Center 2012 R2 Configuration Manager, Configuration Manager (current branch)
Numero KB originale: 2894518

Riepilogo

Il problema è stato risolto nell'aggiornamento cumulativo 3 per System Center 2012 Configuration Manager Service Pack 2 e System Center 2012 R2 Configuration Manager Service Pack 1 e in Configuration Manager current branch versione 1602.

Una nuova variabile facoltativa della sequenza di attività, SMSTSWaitForSecondReboot, è disponibile per controllare meglio il comportamento del client quando un'installazione di aggiornamento software richiede due riavvii.

Per altre informazioni, vedere la sezione Gestione degli aggiornamenti software/distribuzione del sistema operativo in Descrizione dell'aggiornamento cumulativo 3 per Configuration Manager.

Per Configuration Manager current branch, vedere Variabili della sequenza di attività.

Sintomi

Si supponga che una sequenza di attività Configuration Manager che usa il passaggio Install Software Aggiornamenti installi un aggiornamento software che attiva più riavvii dopo che la sequenza di attività ha eseguito correttamente l'attività Install Software Aggiornamenti. In questo caso, la sequenza di attività può non riuscire e generare il messaggio di errore seguente:

Ambiente della sequenza di attività non trovato

Nota

È possibile evitare questo problema in Configuration Manager usando la nuova opzione Riprova nel passaggio Installa software Aggiornamenti sequenza di attività.

Causa

Il primo riavvio avviato dall'aggiornamento software è controllato dalla sequenza di attività. Tuttavia, la seconda richiesta di riavvio viene avviata da un componente Windows (in genere, Component-Based Servicing) e non è controllata dalla sequenza di attività. Pertanto, lo stato di esecuzione della sequenza di attività non viene salvato prima del riavvio perché il secondo riavvio non è controllato dalla sequenza di attività. Quando la sequenza di attività riprende dopo il secondo riavvio, non è disponibile alcuno stato per continuare correttamente.

Risoluzione

Per risolvere questo problema, è consigliabile applicare gli aggiornamenti che richiedono il doppio riavvio usando la consueta funzionalità di aggiornamenti software di Configuration Manager anziché le sequenze di attività. Gli aggiornamenti software seguenti sono stati segnalati per richiedere più riavvii.

Ulteriori informazioni

Poiché questo secondo riavvio non è controllato dalla sequenza di attività, non viene salvato alcuno stato di esecuzione prima del riavvio. Quando la sequenza di attività riprende dopo il riavvio, non è disponibile alcuno stato per continuare correttamente. Inoltre, il messaggio seguente potrebbe essere registrato nel file Smsts.log quando si verifica questo problema:

!sVolumeID.empty(), HRESULT=80004005
!sTSMDataPath.empty(), HRESULT=80070002
TS::Utility::GetTSMDataPath( sDataDir ), HRESULT=80070002
Impossibile impostare la directory del log. È possibile che una cronologia di esecuzione vada persa.
Impossibile trovare il file specificato. (Errore: 80070002; Origine: Windows)
Esecuzione della sequenza di attività
!sVolumeID.empty(), HRESULT=80004005
!sTSMDataPath.empty(), HRESULT=80070002
Ambiente della sequenza di attività non trovato

Inoltre, i client che eseguono versioni di rilascio precedenti a Microsoft System Center 2012 Configuration Manager Service Pack 1 possono contenere la voce di log seguente:

Sequenza di attività completata in Windows PE.

Il computer client potrebbe anche rimanere bloccato in modalità di provisioning dopo l'errore della sequenza di attività. Per determinare se il computer è in modalità di provisioning, controllare la sottochiave del HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CCM\CcmExec Registro di sistema.

ProvisioningMode deve essere impostato su false. Se è impostato su true, usare uno dei metodi seguenti per escludere il client dalla modalità di provisioning:

  • Usare il metodo SetClientProvisioningMode Strumentazione gestione Windows (WMI) per escludere correttamente il client dalla modalità di provisioning. Il modo più semplice per eseguire questa operazione consiste nell'eseguire il comando Windows PowerShell seguente:

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

    In alternativa, eseguire il comando seguente al prompt dei comandi con privilegi elevati:

    powershell Invoke-WmiMethod -Namespace root\CCM -Class SMS_Client -Name SetClientProvisioningMode -ArgumentList $false
    
  • Reinstallare il client.

Importante

Non provare a correggere il client modificando il valore di ProvisioningModesu false. Questa azione non rimuove completamente il client dalla modalità di provisioning.