Tuesday, May 16, 2017

SCCM Task Sequence Error 0x4005(16389)


Scenario

You are deploying Windows 10 x64 1607 update. After you click on the update in software center, it looks like everything is working. Files are getting downloaded and whatnot, but you eventually get the error above - Task Sequence: Upgrade to Windows 10 Enterprise x64 1607 has failed with the error code (0x80004005).

After you click "Close" on that, you look back in the software center and it eventually fails with an error code of 0x4005(16389).  It looks something like this:


Troubleshooting


The logs I first looked to were the following client logs:

  1. execmgr.log
  2. smsts.log
  3. dism.log

The execmgr.log showed me that the right task sequence started and that it was running under the NT AUTHORITY\SYSTEM user context.

Execution Request for advert  package XXX000EF program * state change from Ready to NotifyExecution execmgr 5/15/2017 8:35:37 AM 8976 (0x2310)
Raising client SDK event for class CCM_Program, instance CCM_Program.PackageID="XXX000EF",ProgramID="*", actionType 1l, value , user NULL, session 4294967295l, level 0l, verbosity 30l execmgr 5/15/2017 8:35:37 AM 8976 (0x2310)
Executing program as a task sequence. execmgr 5/15/2017 8:35:37 AM 8976 (0x2310)
Executing TS Program execmgr 5/15/2017 8:35:37 AM 8976 (0x2310)
Task Sequence started execmgr 5/15/2017 8:35:37 AM 8976 (0x2310)
Raising event:
[SMS_CodePage(437), SMS_LocaleID(1033)]
instance of SoftDistProgramStartedEvent
{
AdvertisementId = "XXX20058";
ClientID = "GUID:9E193632-6CBB-4797-AEAA-466E333B6189";
CommandLine = "";
DateTime = "20170515143537.173000+000";
MachineName = "XXXXXX";
PackageName = "XXX000EF";
ProcessID = 3484;
ProgramName = "*";
SiteCode = "XXX";
ThreadID = 8976;
UserContext = "NT AUTHORITY\\SYSTEM";
WorkingDirectory = "C:\\windows\\system32\\";
};

This was helpful because in order for the task sequence to run it has to meet the following conditions:
  1. The program must be able to install as Local System. 
  2. The program cannot have any user interaction.
  3. The program can't force a reboot...it must allow the SCCM TS to manage the reboot.
So it at least told me that #1 was good.  But it didn't give me much insight as to why the task sequence was failing.  I checked the task sequence itself to see if any reboot switches for any installs were in place - there weren't any.

I then looked at the SMSTS.LOG and it told me why the task sequence was not finishing.  The files were successfully downloaded, but when SCCM attempted to use DISM to check the WIM Info, it was not able to.

Getting wim image properties OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
Getting properties of install.wim image using dism output OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
Command line: <"C:\windows\system32\cmd.exe" /q /c ""C:\windows\system32\dism.exe" /Get-WimInfo /English /WimFile:"C:\_SMSTaskSequence\Packages\XXX000D3\sources\install.wim" /Index:1 > "C:\windows\TEMP\@_9269.tmp" "> OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
Command line for extension .exe is "%1" %* OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
Set command line: "C:\windows\system32\cmd.exe" /q /c ""C:\windows\system32\dism.exe" /Get-WimInfo /English /WimFile:"C:\_SMSTaskSequence\Packages\XXX000D3\sources\install.wim" /Index:1 > "C:\windows\TEMP\@_9269.tmp" " OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
Executing command line: "C:\windows\system32\cmd.exe" /q /c ""C:\windows\system32\dism.exe" /Get-WimInfo /English /WimFile:"C:\_SMSTaskSequence\Packages\XXX000D3\sources\install.wim" /Index:1 > "C:\windows\TEMP\@_9269.tmp" " OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
Process completed with exit code 11 OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
Deployment Image Servicing and Management tool
OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
Version: 10.0.10586.0
OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
Error: 11 OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)
An attempt was made to load a program with an incorrect format. OSDUpgradeWindows 5/15/2017 8:48:02 AM 7968 (0x1F20)

I downloaded the WIM file that was being used and manually ran the DISM /Get-WimInfo against it and received the same error.  So in this case, I needed to either dig further into what was wrong with the WIM file or just create a new Operating System Upgrade Package and add that to the existing task sequence.

For kicks, I took a look at the DISM.LOG to see if I could discern what was wrong. In this case, DISM was unable to read the WIM header.

2017-05-15 08:48:02, Warning               DISM   DISM WIM Provider: PID=2212 [ReadWimHeader:(1723) -> version/header mismatch] C:\_SMSTaskSequence\Packages\XXX000D3\sources\install.wim (HRESULT=0x8007000B) - CWimManager::WimProviderMsgLogCallback
2017-05-15 08:48:02, Error                 DISM   DISM WIM Provider: PID=2212 [WIMCreateFile:(425) -> Fail to read WIM header] C:\_SMSTaskSequence\Packages\XXX000D3\sources\install.wim (HRESULT=0x8007000B) - CWimManager::WimProviderMsgLogCallback
2017-05-15 08:48:02, Error                 DISM   DISM WIM Provider: PID=2212 WIM open failed. - CWimImageInfoCollection::Initialize(hr:0x8007000b)

In the end, I just created a new task sequence using a vanilla copy of the 1607 files (WIM) and then had the task sequence do updates after deploying 1607.  I suspect that something went wrong during the offline servicing of the previous WIM file.

No comments:

Post a Comment