Voici un problème connu qui touche la fonctionnalité de déploiement de système d’exploitation de System Center 2012 Configuration Manager RTM et SP1. Le problème est aléatoire et peut survenir pour une machine alors que d’autres fonctionneront sans problème. Vous êtes dans le scénario suivant :
- Vous capturez une image de système d’exploitation
- Vous déployez l’image sur vos points de distribution.
- Vous remplacez l’image capturée dans une de vos séquences de tâches
Dans ce scénario, l’installation d’un programme d’un package lors du déploiement d’un système d’exploitation reste bloquée. Vous pouvez observer la répétition de la ligne suivante dans le fichier smsts.log :
Waiting for job status notification
En activant le mode Debug, vous pouvez observer les lignes suivantes dans le fichier execmgr.log :
Policy arrived for child program Install Silent execmgr 03.12.2012 14:50:43 1856 (0x0740)
CExecutionRequestManager::OnRequestProgram - entered. execmgr 03.12.2012 14:50:43 1856 (0x0740)
Attempt to run program from passed location execmgr 03.12.2012 14:50:43 1856 (0x0740)
\\myserver\SMSPKGD$\CCM0003A\ is a passed program location execmgr 03.12.2012 14:50:43 1856 (0x0740)
Creating mandatory request for advert CCM2007F, program Install Silent, package CCM0003A execmgr 03.12.2012 14:50:43 1856 (0x0740)
Found Policy. Validate policy is acceptable. execmgr 03.12.2012 14:50:43 1856 (0x0740)
An execution request does not exist yet for this program. Creating a new request. execmgr 03.12.2012 14:50:43 1856 (0x0740)
GetRequestSessionId: Sid of the caller is S-1-5-18 execmgr 03.12.2012 14:50:43 1856 (0x0740)
0 != _wcsicmp(szUserSid, szSystemSid), HRESULT=00000001 (e:\nts_sccm_release\sms\client\softmgmtagent\execmgr\execreqmgr.cpp,926) execmgr 03.12.2012 14:50:43 1856 (0x0740)
Adding location \\myserver\SMSPKGD$\CCM0003A\ execmgr 03.12.2012 14:50:43 1856 (0x0740)
Evaluate if current request needs to be executed execmgr 03.12.2012 14:50:43 1856 (0x0740)
CExecutionRequest::OnEvaluateForExecution: Evaluate Program Install Silent [Advert CCM2007F] targeted to System. Current State : 0 execmgr 03.12.2012 14:50:43 1856 (0x0740)
An existing MTC token was supplied, this execution request is not owner of MTC object. execmgr 03.12.2012 14:50:43 1856 (0x0740)
Request a MTC task for execution request of package CCM0003A, program Install Silent with request id: {3F7FF7B0-B409-41E7-868E-759584B15C8E} execmgr 03.12.2012 14:50:43 1856 (0x0740)
Execution Request for advert CCM2007F package CCM0003A program Install Silent state change from NotExist to Ready execmgr 03.12.2012 14:50:43 1856 (0x0740)
CUIEventGenerator::NotifyProgramStateChanged entered execmgr 03.12.2012 14:50:43 1856 (0x0740)
RaiseClientSDKEvent: Raising a client SDK WMI event execmgr 03.12.2012 14:50:43 1856 (0x0740)
Raising client SDK event for class CCM_Program, instance CCM_Program.PackageID="CCM0003A",ProgramID="Install Silent", actionType 1l, value , user NULL, session 4294967295l, level 0l, verbosity 30l execmgr 03.12.2012 14:50:43 1856 (0x0740)
RaiseClientSDKEvent: A client SDK WMI event is raised up successfully execmgr 03.12.2012 14:50:43 1856 (0x0740)
CUIEventGenerator::NotifyProgramStateChanged succeeded execmgr 03.12.2012 14:50:43 1856 (0x0740)
Persisting request for program Install Silent package CCM0003A in state Ready execmgr 03.12.2012 14:50:43 1856 (0x0740)
Current state for CCM2007F: 7 execmgr 03.12.2012 14:50:43 1856 (0x0740)
The reference count for program Install Silent, package CCM0003A has been incremented to 1 execmgr 03.12.2012 14:50:43 1856 (0x0740)
Persisting request for program Install Silent package CCM0003A in state Ready execmgr 03.12.2012 14:50:43 1856 (0x0740)
Successfully created request for Package :CCM0003A Program:Install Silent Advert: CCM2007F execmgr 03.12.2012 14:50:43 1856 (0x0740)
Pour résoudre le problème, vous devez intégrer les tâches suivantes avant celle qui exécute le programme :
- Une tâche qui exécute le script suivant :
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\ccm")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("SMS_MaintenanceTaskRequests")
For Each objSWbemObject In colSWbemObjectSet
strInstance = "SMS_MaintenanceTaskRequests.TaskID='"&objSWbemObject.TaskID&"'"
objSWbemServices.delete strInstance
Next
- Une tâche de redémarrage
- Puis la tâche d’installation du programme/package