Sunday, January 26, 2014

Task sequence error 0x80070070



Task Sequence: <Task_Sequence_Name> has failed with the error code (0x80070070). For more information, please contact your system administrator or helpdesk operator.

I have received the above error just before copying/staging the boot media, when I have tried to deploy Windows 7 image using deploy task sequence.  I am sure I have enough space on the local drive but seems to be an issue copying the WinPE image to C drive.

To resolve the issue, hit F8 to open the command prompt in winPE. Then run DiskPart, then List Disk, then Select disk 0, then clean

Restart the target machine and try again. This time it should work without task sequence error 0x80070070.

Wednesday, January 22, 2014

Create custom pages using MDT UDI Wizard designer


Recently I read a request from a Technet user about his requirements around generating a prompt with build options using SCCM and / MDT only for SCCM OSD Task sequence.

I have done the similar prompts using HTA, VB script and other third-party tools.  So I thought I will give a crack at this using MDT UDI Wizard Designer. Surprisingly it took less than 10 min to create the prompt, which is easier then creating from HTA, VB script or any other methods.
This is a quick article to explain how to create build type prompt to technician.

In this how to document, we will edit the existing UDIWizard_Config.xml file to customise the UDI pages. Make a copy / backup of default UDIWizard_Config.xml file before start editing xml file. Then we will add a custom page to the UDI Wizard with few labels and assign task sequence variables to those labels.

Go to Start -> All programs -> Microsoft Deployment ToolKit
Launch UDI Wizard Designer as administrator. If we launch UDI Wizard designer as normal user, we won’t be able to save the UDIWizard_config.xml file back to MDT Share. That is why the UDI Wizard Designer has to be launched as Administrator.

Select Open from the Home tab then browse to the location of UDIWizard_Config.xml in your MDT installation path or the location where MDT package is stored.  UDIWizard_Config.xml file will be located in %MDT Package%\Scripts\.

Opening the UDIWizard_config.xml file will display there StageGroups by default.

Expand StageGroup: New Computer;

By default the new computer stage has 11 different pages. If required we can customise them as needed. To remove a page from stage group; right click on the page then click on Remove Item;

I have removed all the default pages then added 4 custom pages Welcome, Deployment Readiness, Language and Install Program pages. Now we will add “Choose build type” page to the StageGroup.
Click on Add Page from ribbon; then Select Build your own page from Add a Page to the Page Library window


















Give unique display name and page name to the page. I have named the display name and page name “Choose Build Type”. Now this page will be added to the page library on the left side of the column in UDI Wizard. Select build Type page from page library then drag it to New Computer stage group, place it in-between other pages as desired.
Now the StageGroup: New Computer will look as below;









Select newly added page, click on Configure. This will open My Custom Page canvas where we can add our customization.









On the canvas I will add 3 radio buttons and name them Pre Stage, New Build and Rebuild.  On the Layout tab we will add a Label for each of the radio button (Pre Stage, New Build, Re build), add Value for each label (PreStage, NewBuild, ReBuild).








On the Settings tab we give task sequence variable name (BuildType).










So what happens here is when we use the task sequence variable ‘BuildType’ it validates the values, when the values returns true the task will be executed.
Save the UDIWizard_config.xml file then exit the UDI Wizard designer. Distribute the updated MDT package to all the distribution points.

Till this stage we have completed designing a page, created labels with values and task sequence variable.

Next we need to integrate the UDI page to the task sequence and create a task to validate the task sequence variable. For testing purpose I want to create a pause step and this step will be executed by task sequence if the Task sequence variable for BuildType is equal to PreStage.

Open an existing task sequence in edit mode, add Run Command line step then add following command
cscript.exe "%DeployRoot%\Scripts\UDIWizard.wsf"
Start in: %TOOLROOT%









I will be using previously created package (TSPaused) package to pause the task sequence. Identify a step where we want to add a pause step then Add Run Command line step to the task sequence configure the  step as below;










On the Options tab, select Add conditions then choose Task Sequence Variable. On Enter the task sequence variable to evaluate;
Variable: BuildType
Condition: equals
Value: PreStage
Then click OK.
















When the step is complete, the task will look like as below;








Save the changes and exist the task sequence editor.

Now the time to test our work.
Boot up a machine, select the task sequence which we have updated with the UDI and Pause package. When the task sequence reaches the UDI page, we will be prompted UDI window for action.
The UDI Wizard will display the first screen - Welcome Screen;













Deployment Readiness;














Time Zone selection;














Build Type;














and install applications;
 












Once we click on Finish button, the task sequence will continue.
When the task sequence reaches Pause task, it will evaluate the condition.  On the built type selection I have chosen PreStage  so the condition will validate as true /equal then executes the task and populates the pause window as below;








That’s it. We have successfully created a user selection options, populated custom task sequence variable then validated with task sequence.
More over everything has done with SCCM and MDT, no scripting and no third-party tools involved.

Friday, January 10, 2014

This operation returned because the timeout period expired Error: 800705B4



Error MSG:
This operation returned because the timeout period expired:
Failed to run the action: Updates Install.
This operation returned because the timeout period expired. (Error: 800705B4; Source: Windows)
 Symptoms:
I have received above error MSG when running Installing updates step in Build and Capture task sequence.
Task sequence executed the updates install step then hangs there for 30 min (default wait time), then will fail with Failed to run the action: Updates Install. This operation returned because the timeout period expired. (Error: 800705B4; Source: Windows) error.
The VM where I am running build and capture is a Non-domain machine.

Problem:
When installing updates on workgroup computers, the machine failed to communicate or find the management point. It waits for default time out period then the task sequence fails.
At this point if we open a command prompt and ping the management point will fail.

Solution:
change the SMSMP, SMSLP and FSP settings on client installation properties with FQDN.
As an example
I have changed my original client properties from;
SMSMP=SCCM SMSLP=SCCM FSP=SCCM
to this
SMSMP=SCCM.AD SMSLP=SCCM.AD FSP=SCCM.AD
After applying the above changes, the Build and Capture task sequence completed successfully.