In this post, we are going to discuss about a tool Microsoft Endpoint Configuration Manager “Task sequence debugger“ which helps with above challenges. I have presented this topic in “How To Manage Devices” event on 14th Dec.
Related Post from Vishal – https://www.anoopcnair.com/sccm-osd-task-sequence-ultimate-guide/
Most of the Windows 10 admins who manage task sequence goes through below challenging tasks.
- Analyse the task sequence logic : In Task sequence, we spend lot of time and define scripts to trace the execution flow. Some of the common scripts we include is adding pause, wait action, export task sequence variable values to txt file, etc.
- Troubleshooting : Watch the events, Task sequence variables and logs when task sequence is in action
- Testing time : If task sequence fail then we have to start all over again. we do not have any control if task sequence fail. This include manual copy of the logs to external disk and analyse.
- Task Sequence Debugger feature enabled.
- Go to Administration / Updates and Servicing / Features
- Right-click and select Turn-on on the Task Sequence Debugger feature
- Logged in user should be member of Local Administrators group
- SCCM server version 1906 and above
- Updated SCCM client and boot image
How to enable Task sequence Debugger?
As show below Task sequence debugger is inbuilt tool with SCCM agent. There is no need to add this tool. We just need to trigger the tool to launch along with Task sequence.
In case of Win PE, You can find the tool with in X:\SMS\bin\x64
We can trigger the Task Sequence debugger in 2 ways
Option 1: Debug deployment
· Navigate to Software Library / Operating Systems / Task Sequences
· Right-Click the Task Sequence. Select Debug in the menu and deploy
Note 1: You cannot deploy the debug mode Task Sequence to collections, which have more than 10 computers. SCCM will automatically hide the collections with computers more than 10.
Note 2: you cannot deploy debug Task Sequence in “Required” mode. Only “available” deployment mode supported
Note 3 : if you deploy normal deployment and debug deployment to same computer then Debugger tool may not work.
Option 2: Variables
Enable SCCM variable “TSDebugMode”. You can set this variable for a particular machine or for entire collection. Below shown is collection variable.
I prefer setting the variable at device level as shown below instead of collection variables. Because I know exactly which are my test device in SCCM.
Note: please do not enable the debug mode variable on collections which include end user computers. End user is not required to see the tool.
How to use the TS Debugger Tool
Now let us discuss what the different controls available in debugger tool
- Step: This will execute one-step at a time. After one-step, TS will stop. After each step, you will get the opportunity to check the logs, variables, etc.
- Run: This will allow your Task sequence execute normally without any Debugger tool controls.
- Set current: This allow you to jump or move the control of the Task sequence step to another step you want. You do not need to re-run the entire TS. This allows lot of flexibility while troubleshooting. you can identify the current step with symbol ( ==>> ) as shown in below picture.
- Set break: This allow you to set stop points in the Task sequence. Task sequence will execute until the step where we set the break point. It will not proceed further until we release the break. This is useful when you suspect a particular step in Task sequence is causing issue. As shown below, TS will proceed till the step marked STOP and halts there. You can set multiple break point in the TS. The step that Task sequence is currently executing will be display as (==>>)
Note: After restart, all the break point configured removes automatically. However Task sequence will pause after any restart in Task Sequence. So you can set back the break point.
- Clear all breaks: This removes all breaks, which you set earlier.
- Log file: This launch the SMSTS log with Cmtrace log viewer.
- Cmd prompt: This will launch the command prompt support. This is helpful when you want to check external dependencies like IP address,DNS,network etc.
- Cancel: This will stop both Task Sequence and debugging tool.
- Quit: This will quit only debugger tool. However, Task sequence will resume in normal mode.
How to launch TS debugger only when TS fails
You can use task sequence variable “TSDebugOnError” to lauch Debugger tool only when Task sequence fails. if you use “TSDebugOnError” variable then you do not have to define the other variable “TSdebugmode” .
The “TSDebugOnError” variable is added in SCCM version 1910 . If Task sequence fails due to some reason you can still take control of Task sequence and play with it using Debugger tool.
This tool is primarily meant for debugging. But I think this tool also help to improve Task sequence logic,scripts,design and performance,reduce reboots,etc. In future lets hope Microsoft add more capabilities like automatic recommendations based on insights for task sequence.
Start using Task Sequence debugger tool if you have not yet started.
- SCCM Debug options – Debug a task sequence – https://docs.microsoft.com/en-us/configmgr/osd/deploy-use/debug-task-sequence