Thursday, March 6, 2014

Add remove programs will not display and it is Blank


We have come across after system build Add remove programs not displaying the installed programs nor not able to add any new features

There is a Patch for this is more into Certificate file expiry


Build Info in the Registry From OSD task Sequence

To Implement the Build info in the Registry Simply add below TS steps at the end of task sequence


Each Step explanation

Branding - TSeq Build Date: add a ts type as Run command line

Command line:

cmd /c reg add HKEY_LOCAL_MACHINE\SOFTWARE\CSC\SOE /v TaskSequence_BuildDate /d "%date% %time%" /f


For getting Task Sequence Name in the Registry:

Branding - TSeq Name:-

Command line :-

reg add HKEY_LOCAL_MACHINE\SOFTWARE\CSC\SOE /v TaskSequence_Name /d "%_SMSTSPackageName%" /f


For Branding - WIM Version

Command line:

reg add HKEY_LOCAL_MACHINE\SOFTWARE\CSC\SOE /v WIM_Version /d "%OSDImageVersion%" /f


For Branding - Country Code :- Note the TS Env should be define for this

Command line:-

reg add HKEY_LOCAL_MACHINE\SOFTWARE\CSC\SOE /v Country /d "%cmCountry%" /f


OSD Phases Wise set a Background Wallpaper

For setting a wallpaper based on the OS deploy Phase

Create a section in your task sequence like below


Download the BGinfo and create a package

I have copied these files in my MDT package i.e…, MDT 2013 Files\Scripts\CustomScripts\BGInfo

The package source files looks like below


Now in the TS create a step as Run command line, in the Commad Line type blow and and make sure start in should be “%scriptroot%\CustomScripts\BGInfo”

Command Line: "%scriptroot%\CustomScripts\BGInfo\Bginfo.exe" SCCM-OSD-Wallpaper-Item3.bgi /nolicprompt /silent /timer:0


Language Packs Integration in TS

For Windows Language Packages to install……

In this section we will be looking at Three major areas

1) OS Language packs
2) IE language Packs

3)Office lanugage Packs

For OS:-

Download the LP.Cab files


Create a package and without a program

Now add a step in the TS with below command line

cmd /c Dism.exe /image:%OSPartition%\ /add-package / /loglevel:4 /LogPath:%_SMSTSLogPath%\Dism_LangPack.log /ScratchDIR:C:\_SMSTaskSequence



For IE language Packs

Download the language pack.msu files from MS site


Once downloaded Create a standard software package

For Program creation

wusa.exe IE9-Windows6.1-LanguagePack-x86-ind.msu /quiet /norestart /log:"%windir%\AppsLogs\IE9-Windows6.1-LanguagePack-x86-ind.log"

Add this package in TS as a Package for getting installed in TS

That’s all….. For IE

For Office language packages the story little bit different

Once you downloaded the Language Pack you will see similar to below folder structure based on the language (in my example I have taken ja.JP as Japan)





<Configuration Product="OMUI.ja-jp">


<Display Level="None" CompletionNotice="no" Reboot="ReallySuppress" SuppressModal="YES" AcceptEula="yes" />


<Setting Id="SETUP_REBOOT" Value="Never" />


<AddLanguage Id="ja-jp" ShellTransform="Yes" />





<Configuration Product="OMUI.ja-jp">


<!-- <Display Level="full" CompletionNotice="yes" SuppressModal="no" AcceptEula="no" /> -->


<!-- <Logging Type="standard" Path="%temp%" Template="Microsoft Office Japanese Language Pack Setup(*).txt" /> -->


<!-- <USERNAME Value="Customer" /> -->


<!-- <COMPANYNAME Value="MyCompany" /> -->


<!-- <INSTALLLOCATION Value="%programfiles%\Microsoft Office" /> -->


<!-- <LIS CACHEACTION="CacheOnly" /> -->


<!-- <LIS SOURCELIST="\\server1\share\Office;\\server2\share\Office" /> -->


<!-- <DistributionPoint Location="\\server\share\Office" /> -->


<!-- <OptionState Id="OptionID" State="absent" Children="force" /> -->


<!-- <Setting Id="SETUP_REBOOT" Value="IfNeeded" /> -->


<!-- <Command Path="%windir%\system32\msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> -->






<?xml version="1.0" encoding="utf-8"?>




<Package Id="OMUI.ja-jp" Type="MSI" Path="OMUI.MSI" Version="1.0" ProductCode="{90140000-0100-0411-0000-0000000FF1CE}" MSIVersion="14.0.4763.1000" Platform="x86">


<Feature Id="Gimme_OnDemandData" Cost="0">


<OptionRef Id="Gimme_OnDemandData"/>




<Feature Id="OSpp" Cost="4233281">


<OptionRef Id="OSpp"/>




<Feature Id="SetupExeAddRegistry" Cost="0">


<OptionRef Id="AlwaysInstalled"/>




<Feature Id="SetupExeArpEntry" Cost="0">


<OptionRef Id="AlwaysInstalled"/>




<Feature Id="SetupControllerFiles" Cost="7616916">


<OptionRef Id="AlwaysInstalled"/>




<Feature Id="OMUIFiles" Cost="29713344">


<OptionRef Id="AlwaysInstalled"/>




<Feature Id="OSpp_Core" Cost="6139790">


<OptionRef Id="OSpp_Core"/>




<Feature Id="OSetupController" Cost="7616448">


<OptionRef Id="AlwaysInstalled"/>




<Feature Id="MsoInstalledPackagesScopedIntl_1041" Cost="0">


<OptionRef Id="AlwaysInstalled"/>




<Feature Id="SetupXmlFiles" Cost="468">


<OptionRef Id="AlwaysInstalled"/>








<?xml version="1.0" encoding="utf-8"?>




<Setup Id="OMUI.ja-jp" Type="Product" LanguagePack="yes" ProductCode="{90140000-0100-0411-0000-0000000FF1CE}">


<PIDTemplate Value="82503&amp;amp;lt;````=````=````=````=`````&amp;amp;gt;@@@@@"/>


<Option Id="AlwaysInstalled" DefaultState="Local" DisallowAbsent="yes" DisallowAdvertise="yes" Hidden="yes"/>


<Option Id="OSpp" DefaultState="Local" DisallowAbsent="yes" DisallowAdvertise="yes" Hidden="yes"/>


<Option Id="OSpp_Core" DefaultState="Local" DisallowAbsent="yes" DisallowAdvertise="yes" Hidden="yes"/>


<Option Id="Gimme_OnDemandData" DefaultState="Local" DisallowAbsent="yes" DisallowAdvertise="yes" Hidden="yes"/>


<PackageRef Path="OMUI.xml"/>


<AddOnRef Keyword="AccessMUI"/>


<AddOnRef Keyword="ExcelMUI"/>


<AddOnRef Keyword="SharePointDesignerMUI"/>


<AddOnRef Keyword="GrooveMUI"/>


<AddOnRef Keyword="InfoPathMUI"/>


<AddOnRef Keyword="OfficeMUI"/>


<AddOnRef Keyword="RosebudMUI" Exclude="Vista"/>


<AddOnRef Keyword="Proofing"/>


<AddOnRef Keyword="Office64MUI" Exclude="Unless64bitOS"/>


<AddOnRef Keyword="OneNoteMUI"/>


<AddOnRef Keyword="OutlookMUI"/>


<AddOnRef Keyword="PowerPointMUI"/>


<AddOnRef Keyword="PublisherMUI"/>


<AddOnRef Keyword="WordMUI"/>


<AddOnRef Keyword="XMUI.ja-jp"/>


<RMCCP FilePath="VISIO.MSI" MinSize="1000000" MaxSize="6500000" MinMajorVer="0" MinMinorVer="0" MaxMajorVer="0" MaxMinorVer="0"/>


<RMCCP FilePath="VISIOCORE.MSI" MinSize="200000" MaxSize="6500000" MinMajorVer="0" MinMinorVer="0" MaxMajorVer="0" MaxMinorVer="0"/>


<RMCCP FilePath="VISPRO.MSI" MinSize="1000000" MaxSize="6500000" MinMajorVer="0" MinMinorVer="0" MaxMajorVer="0" MaxMinorVer="0"/>


<RMCCP FilePath="VISPROR.MSI" MinSize="1000000" MaxSize="6500000" MinMajorVer="0" MinMinorVer="0" MaxMajorVer="0" MaxMinorVer="0"/>


<RMCCP FilePath="VISSTD.MSI" MinSize="1000000" MaxSize="6500000" MinMajorVer="0" MinMinorVer="0" MaxMajorVer="0" MaxMinorVer="0"/>


<RMCCP FilePath="VISSTDR.MSI" MinSize="1000000" MaxSize="6500000" MinMajorVer="0" MinMinorVer="0" MaxMajorVer="0" MaxMinorVer="0"/>


<RMCCP FilePath="PRJPROE.MSI" MinSize="1000000" MaxSize="6500000" MinMajorVer="0" MinMinorVer="0" MaxMajorVer="0" MaxMinorVer="0"/>


<RMCCP FilePath="PRJPRO.MSI" MinSize="1000000" MaxSize="6500000" MinMajorVer="0" MinMinorVer="0" MaxMajorVer="0" MaxMinorVer="0"/>


<RMCCP FilePath="PRJSTDE.MSI" MinSize="1000000" MaxSize="6500000" MinMajorVer="0" MinMinorVer="0" MaxMajorVer="0" MaxMinorVer="0"/>


<RMCCP FilePath="PRJSTD.MSI" MinSize="1000000" MaxSize="6500000" MinMajorVer="0" MinMinorVer="0" MaxMajorVer="0" MaxMinorVer="0"/>


<PIDKEY Value="H3MDP-M7D4B-C3BCB-97RM8-GX9B2"/>






<ActConfigID Id="F3329A70-BB26-4DD1-AF64-68E10C1AE635" TrialBitmap="0x2FFF" ProductName="OfficeLPK" AllowTerminalService="1" GroupID="98"/>




<AllowAdditionalPidKeys Value="true"/>


<LocalCache DownloadCode="{90140000-0100-0411-0000-0000000FF1CE}" SkuComponentDirectory="OMUI.ja-jp">


<File Id="OMUI.xml" MD5="751ADBD66BE1AF2D60976FADC6CFEE30" Size="1350" RelativeCachePath="OMUI.xml" RelativeSourcePath="OMUI.xml"/>


<File Id="OMUI.msi" MD5="034E8B14801981267EBC7875214ED54E" Size="892416" RelativeCachePath="OMUI.msi" RelativeSourcePath="OMUI.msi"/>


<File Id="" MD5="E32FA7200327B2A0206B03154BF36060" Size="19470956" RelativeCachePath="" RelativeSourcePath=""/>


<File Id="setup.exe" MD5="4D92F518527353C0DB88A70FDDCFD390" Size="1100664" RelativeCachePath="setup.exe" RelativeSourcePath="..\setup.exe"/>


<File Id="osetup.dll" MD5="FCC38158C5D62A39E1BA79A29D532240" Size="5789544" RelativeCachePath="osetup.dll" RelativeSourcePath="osetup.dll"/>


<File Id="ose.exe" MD5="9D10F99A6712E28F8ACD5641E3A7EA6B" Size="149352" RelativeCachePath="ose.exe" RelativeSourcePath="ose.exe"/>


<File Id="pkeyconfig-office.xrm-ms" MD5="3DCFF1DCDEB1B837EC8F13351C8A92AC" Size="715834" RelativeCachePath="pkeyconfig-office.xrm-ms" RelativeSourcePath="pkeyconfig-office.xrm-ms"/>


<File Id="PidGenX.dll" MD5="7F120AAD20ECAE1EA421083F26611519" Size="1248016" RelativeCachePath="PidGenX.dll" RelativeSourcePath="PidGenX.dll"/>


<File Id="Setup.xml" MD5="" Size="" RelativeCachePath="Setup.xml" RelativeSourcePath="Setup.xml"/>





KMDF Related Issues

I have seen a strange problem when we target the drivers as software package the installation was never triggered in the Task sequence, When we look for an alternative to make this package as PnP it will fail some time the package will install however we will get below error screen, clip_image002

By looking at the error screen… we can think of it could be sysprep issue or unattended.xml issue but that is not the case. I have even suspected the issue with “Open File Security Warning” but interestingly this is not the case. I have also tested on SCCM 2007 and 2012 I got the same errors and When I have changed my program command lines execution method i.e., sometimes I used .Bat, .CMD, .PS1 and .Vbs atleast sometimes it works sometimes it is not working………. But the root cause is un-known…. When investigated further found below….

Issue was Experienced Models: X440, L440, T440p, M83, X240

When looked at the Smsts.log file found “Not enough storage is available to complete this operation. (Error: 8007000E; Source: Windows)”

Log file entries:-

pInstall->Install(sPackageID, sProgramName), HRESULT=8007000e (e:\nts_sms_fre\sms\client\osdeployment\installsoftware\main.cpp,374) InstallSoftware 04/03/2014 10:23:42 2776 (0x0AD8)

Install Software failed, hr=0x8007000e InstallSoftware 04/03/2014 10:23:42 2776 (0x0AD8)

Process completed with exit code 2147942414 TSManager 04/03/2014 10:23:42 1408 (0x0580)

!--------------------------------------------------------------------------------------------! TSManager 04/03/2014 10:23:42 1408 (0x0580)

Failed to run the action: AMTSOLLMS.

Not enough storage is available to complete this operation. (Error: 8007000E; Source: Windows) TSManager 04/03/2014 10:23:42 1408 (0x0580)

Sending status message . . . TSManager 04/03/2014 10:23:42 1408 (0x0580)

When looked from Trace…


This kind of issues we have on almost on all the new release of 2013 laptop models regardless of Manufacture Dell/HP/Lenovo because these are meant for Windows 8 OS where windows 8 support the UEFI.

Before we install OS we need to apply KMDF patch on all OS, as a SOE engineer it’s better to include this in all your WIM images before you actually deploy to latest models (I personally suggest).

For the solution steps, keep a look at my simple Task sequence that I have … I will be explaining you in next section


For my Partition Disk I have defined variable as %OSDisk% .. see the below screenshot


After apply Operating system, I have added a command line as below, for DISM Temp Directory


cmd.exe /c mkdir %OSDisk%\Dummy

I have downloaded the patch from Microsoft and used 7zip tool and extracted it
Path for Download link

Based on the X86 (kmdf-1.11-Win-6.1-x86.msu) or X64 (kmdf-1.11-Win-6.1-x64.msu) Once you have extracted the
If extracted X86 you will be getting below


If Extracted X64 you will be getting as below


Create a SCCM Software package (program is not required) from the source that you have extracted above i.e., X86 or X64 the version is dependent on your WIM Architecture

In the SCCM task Sequence call a Step as Install KMDF and type of step should be a “Run Command Line”

And in the command line paste below and replace the package ID with your package ID i.e., LAB00080 with your package ID

cmd.exe /c X:\windows\system32\dism.exe /ScratchDir:%OSDisk%\Dummy /Image:%OSDisk%\ /Add-Package /PackagePath:%_SMSTSMDataPath%\Packages\LAB00080\

Note:- if you are deploying for Windows X64 Bit then you also need to change the from to in the above command line

Show the Package that we have created in SCCM sw distribution section.


Finally in the task Sequence will call a command line to clean up the Directory temp Directory that we used at the first step of task sequence


cmd.exe /c rmdir "%OSDisk%\Dummy" /q /s

That’s all….

Now it should start installing all the drivers packages that you pushed from PnP or as Bad package / Software Distribution based..

Language packs Download location


Here are the Language packs direct link for download


Windows 7 and Windows 8