Introduction
I recently encountered this problem, after PXE booting a new virtual machine I selected a task sequence from the list of task sequences available and after some delays processing policy the task sequence failed with an error “Failed to run Task Sequence. An error occurred while starting the task sequence (0x8007000E).”
Pressing F8 and examining the SMSTS.log file revealed an error which stated the following:
“ThreadToResolveAndExecuteTaskSequence failed. Code(0x8007000E)”
Problem
You may have several Software Update Groups containing many software updates deployed to a collection (or collections) that the computer is a member of, each deployment is referenced by a Policy and when PXE booting this policy must be processed by the client and saved in the Task Sequence Environment, below is a sample Policy being processed by the client and saved into the Task Sequence environment, this log snippet is from the SMSTS.log file
<![LOG[CLibSMSMessageWinHttpTransport::Send: URL: SCCM.server2008r2.lab.local:80 GET /SMS_MP/.sms_pol?ScopeId_6018FCB4-5D22-4CF7-8309-5B1E7E79C657/AuthList_b3571cfa-e19e-44e6-9feb-b62895c33409/VI.SHA256:9B58FAE13D775572FFC29B4CC6DCF35AF740331A2769B83D2FAF69DDE0AC51BF]LOG]!><time=”10:11:25.581-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”1″ thread=”1084″ file=”libsmsmessaging.cpp:8422″>
<![LOG[Request was succesful.]LOG]!><time=”10:11:25.597-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”libsmsmessaging.cpp:8758″>
<![LOG[::DecompressBuffer(65536)]LOG]!><time=”10:11:25.597-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”ccmzlib.cpp:736″>
<![LOG[Decompression (zlib) succeeded: original size 5692, uncompressed size 41914.]LOG]!><time=”10:11:25.597-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”ccmzlib.cpp:647″>
<![LOG[Hash computed from CSP: Microsoft Enhanced RSA and AES Cryptographic Provider, AlgID: 32780, HashSize: 32 ]LOG]!><time=”10:11:25.597-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”libcrypt.cpp:481″>
<![LOG[Expected Hash size: 32, Computed Hash size: 32 ]LOG]!><time=”10:11:25.597-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”libcrypt.cpp:528″>
<![LOG[Request location: HTTP://<MP>/SMS_MP/.SMS_POL?SCOPEID_6018FCB4-5D22-4CF7-8309-5B1E7E79C657/AUTHLIST_B3571CFA-E19E-44E6-9FEB-B62895C33409/VI.SHA256:9B58FAE13D775572FFC29B4CC6DCF35AF740331A2769B83D2FAF69DDE0AC51BF]LOG]!><time=”10:11:25.597-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”1″ thread=”1084″ file=”libsmsmessaging.cpp:4806″>
<![LOG[Response ID: SCOPEID_6018FCB4-5D22-4CF7-8309-5B1E7E79C657/AUTHLIST_B3571CFA-E19E-44E6-9FEB-B62895C33409/VI]LOG]!><time=”10:11:25.597-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”1″ thread=”1084″ file=”libsmsmessaging.cpp:4807″>
<![LOG[Reading Policy Body.]LOG]!><time=”10:11:25.613-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”tspolicy.cpp:2023″>
<![LOG[Parsing Policy Body.]LOG]!><time=”10:11:25.613-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”tspolicy.cpp:2030″>
<![LOG[Downloading policy body ScopeId_6018FCB4-5D22-4CF7-8309-5B1E7E79C657/AuthList_9ec5f064-8ab2-474a-84c4-383c95425a94/VI.]LOG]!><time=”10:11:25.613-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”1″ thread=”1084″ file=”tspolicy.cpp:1992″>
<![LOG[Preparing Policy Body Request.]LOG]!><time=”10:11:25.613-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”tspolicy.cpp:1995″>
<![LOG[ Setting transport.]LOG]!><time=”10:11:25.613-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”tspolicy.cpp:1996″>
<![LOG[ Setting policy location = http://<mp>/SMS_MP/.sms_pol?ScopeId_6018FCB4-5D22-4CF7-8309-5B1E7E79C657/AuthList_9ec5f064-8ab2-474a-84c4-383c95425a94/VI.SHA256:7F558FDF821B09FEB1E0F78FF7D4BB42BBC8720B80240FCF42F0B1AF02B03E5E.]LOG]!><time=”10:11:25.613-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”tspolicy.cpp:1998″>
<![LOG[Executing Policy Body Request.]LOG]!><time=”10:11:25.613-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”tspolicy.cpp:2015″>
And below is what happens when the Task Sequence environment runs out of space..
<![LOG[CLibSMSMessageWinHttpTransport::Send: URL: SCCM.server2008r2.lab.local:80 GET /SMS_MP/.sms_pol?ScopeId_6018FCB4-5D22-4CF7-8309-5B1E7E79C657/AuthList_51631236-80d5-4b53-a270-92b0e24c090e/VI.SHA256:B15A1F8969E8DF2EA29784A9E6DCAB3C9AD60C3F7283453B73200C216EF4D539]LOG]!><time=”10:11:25.769-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”1″ thread=”1084″ file=”libsmsmessaging.cpp:8422″><![LOG[Request was succesful.]LOG]!><time=”10:11:25.769-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”libsmsmessaging.cpp:8758″><![LOG[::DecompressBuffer(65536)]LOG]!><time=”10:11:26.829-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”ccmzlib.cpp:736″><![LOG[Decompression (zlib) succeeded: original size 777343, uncompressed size 6459734.]LOG]!><time=”10:11:27.110-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”ccmzlib.cpp:647″><![LOG[Hash computed from CSP: Microsoft Enhanced RSA and AES Cryptographic Provider, AlgID: 32780, HashSize: 32 ]LOG]!><time=”10:11:27.157-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”libcrypt.cpp:481″><![LOG[Expected Hash size: 32, Computed Hash size: 32 ]LOG]!><time=”10:11:27.157-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”libcrypt.cpp:528″><![LOG[Request location: HTTP://<MP>/SMS_MP/.SMS_POL?SCOPEID_6018FCB4-5D22-4CF7-8309-5B1E7E79C657/AUTHLIST_51631236-80D5-4B53-A270-92B0E24C090E/VI.SHA256:B15A1F8969E8DF2EA29784A9E6DCAB3C9AD60C3F7283453B73200C216EF4D539]LOG]!><time=”10:11:27.656-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”1″ thread=”1084″ file=”libsmsmessaging.cpp:4806″><![LOG[Response ID: SCOPEID_6018FCB4-5D22-4CF7-8309-5B1E7E79C657/AUTHLIST_51631236-80D5-4B53-A270-92B0E24C090E/VI]LOG]!><time=”10:11:27.656-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”1″ thread=”1084″ file=”libsmsmessaging.cpp:4807″><![LOG[Reading Policy Body.]LOG]!><time=”10:11:28.343-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”tspolicy.cpp:2023″><![LOG[Parsing Policy Body.]LOG]!><time=”10:11:28.358-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”tspolicy.cpp:2030″><![LOG[::CompressBuffer(65536,-1)]LOG]!><time=”10:11:29.310-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”ccmzlib.cpp:696″><![LOG[Compression (zlib) succeeded: original size 42856010, compressed size 4996942.]LOG]!><time=”10:11:32.679-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”ccmzlib.cpp:485″><![LOG[((p.Header->UsedBytes + nNameBytes + nNewValueBytes) < 0xA00000) != 0, HRESULT=8007000e (e:\nts_sccm_release\sms\framework\tscore\environmentscope.cpp,430)]LOG]!><time=”10:11:34.723-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”environmentscope.cpp:430″><![LOG[m_pGlobalScope->setValue (pszName, c_szBinaryType + sEncodedValue), HRESULT=8007000e (e:\nts_sccm_release\sms\framework\tscore\environmentlib.cpp,524)]LOG]!><time=”10:11:34.723-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”environmentlib.cpp:524″><![LOG[TS::Environment::SharedEnvironment.setValue( TS::EnvironmentVar::CIVersionInfoPolicy, (const BYTE*)sPolicyXML.c_str(), (sPolicyXML.length()+1)*sizeof(WCHAR) ), HRESULT=8007000e (e:\nts_sccm_release\sms\client\tasksequence\tsmbootstrap\tsmediawizardcontrol.cpp,1887)]LOG]!><time=”10:11:34.723-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”tsmediawizardcontrol.cpp:1887″><![LOG[Command line for extension .exe is “%1″ %*]LOG]!><time=”10:11:34.739-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”commandline.cpp:228″><![LOG[Set command line: “X:\sms\bin\x64\TsProgressUI.exe” /Unregister]LOG]!><time=”10:11:34.739-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”commandline.cpp:705″><![LOG[Executing command line: “X:\sms\bin\x64\TsProgressUI.exe” /Unregister]LOG]!><time=”10:11:34.739-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”1″ thread=”1084″ file=”commandline.cpp:801″><![LOG[==========[ TsProgressUI started in process 1116 ]==========]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TsProgressUI” context=”” type=”1″ thread=”1120″ file=”winmain.cpp:329″><![LOG[Command line: “X:\sms\bin\x64\TsProgressUI.exe” /Unregister]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TsProgressUI” context=”” type=”0″ thread=”1120″ file=”winmain.cpp:332″><![LOG[Unregistering COM classes]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TsProgressUI” context=”” type=”1″ thread=”1120″ file=”winmain.cpp:204″><![LOG[Unregistering class objects]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TsProgressUI” context=”” type=”1″ thread=”1120″ file=”winmain.cpp:495″><![LOG[Shutdown complete.]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TsProgressUI” context=”” type=”1″ thread=”1120″ file=”winmain.cpp:512″><![LOG[Process completed with exit code 0]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”1″ thread=”1084″ file=”commandline.cpp:1098″><![LOG[Successfully unregistered TS Progress UI.]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”1″ thread=”1084″ file=”utils.cpp:2075″><![LOG[ExecuteSelectedTaskSequence(fpCallbackProc,pv,hCancelEvent), HRESULT=8007000e (e:\nts_sccm_release\sms\client\tasksequence\tsmbootstrap\tsmediawizardcontrol.cpp,1484)]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”tsmediawizardcontrol.cpp:1484″><![LOG[hrReturn, HRESULT=8007000e (e:\nts_sccm_release\sms\client\tasksequence\tsmbootstrap\tsmediaresolveprogresspage.cpp,408)]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”1084″ file=”tsmediaresolveprogresspage.cpp:408″><![LOG[ThreadToResolveAndExecuteTaskSequence failed. Code(0x8007000E)]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”3″ thread=”1084″ file=”tsmediaresolveprogresspage.cpp:408″><![LOG[ThreadToResolveAndExecuteTaskSequence returned code 0x8007000E]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”1″ thread=”840″ file=”tsmediaresolveprogresspage.cpp:221″><![LOG[Setting wizard error: An error occurred while starting the task sequence (0x8007000E). For more information, contact your system administrator or helpdesk operator.]LOG]!><time=”10:11:34.754-60″ date=”05-16-2013″ component=”TSPxe” context=”” type=”0″ thread=”840″ file=”tsmediawizardcontrol.cpp:1504″>
The error above, (0x8007000e) “Not enough storage is available to complete this operation.” means that there is not enough ram (memory) to complete the operation, in other words the allocated space in ram for the Task Sequence environment has run out of space (not necessarily that that RAM memory is out of space). The reason it has run out of space could be due to four possibilities:-
- too many applications
- too many Windows updates
- too many Task Sequence steps
- too many referenced Packages.
If we look further at the SMSTS.log file the computer actually read 367 policy assignments and it will attempt to load each policy into the task sequence Environment Space, eventually running out of space. I counted the number of Response ID’s that were listed in my SMSTS.log and it was 182 including the last failed one, if that number is a hard limit I don’t know but that’s where it ran out of environment space.
You can also clearly see the ScopeID in the SMSTS.log referred to in RAM by using a hex editor such as the one linked to in the bottom of this post.
Solution
To reduce the number of policies being processed by the computer, you can move the computer in question to a collection that is not targeted with all these Windows Updates (assuming that is your problem). Doing so will mean that the number of Policies will reduce, however you’ll have to consider another method of applying needed updates such as offline servicing or one big Software Update Group with the required updates.
Alternatively you can delete old software update groups that are targeted to a collection that the computer is a member of. The solution that worked for me was to delete a whole bunch of old Software Update Groups that had been targeted (deployed) to the All Systems collection, this is a lab after all. Be aware that this might not be your best option, as it does increase server load during the deletion process. The other possible workaround is listed below.
After doing the above I could PXE boot once more without any failure to process policy, and you can see that there were a lot less policies being processed by the computer, 130 less in fact.
well that’s it, if you encounter this problem please tell me how many Response ID’s you had in the SMSTS.log file.
until next time, adios !
niall
Recommended reading
The following Technet forum post discusses the issue I’ve mentioned above.
And this is the tool I used to browse memory (works in WinPE) – HxD
I have the issue with 174 response IDs.
Thanks for this, Niall.
One question if I may.
There seems to be some confusion over whether or not the task sequence environment will download policies for Windows updates (or apps or packages) which are deployed to the machine but which are ALREADY present in the OS image?
Can you clarify?
Is the SCCM 2012 SP1 CU2 task sequence environment clever enough to download only the updates (policies) it detects as required, or will it simply download every policy for any update deployed to the machine, whether already present in the OS image (via offline servicing) or not?
I’d be grateful for some clarity around that.
Regards,
John, Glasgow
hi John
well as this occurs BEFORE any image is laid down (you don’t even get that far as it fills up environment space and therefore aborts), I think it’s safe to say that the computer processes all policy targeted to it and in the process run’s out of environment space, thereby causing the issue, it has nothing to do with what updates may or may not be present in the image.
cheers
niall
Pingback: System Center 2012 Configuration Manager Step By Step Guides | just another windows noob ?