The Drivers Saga Continues… This time we battle SCCM 2007…

By arwidmark / December 3, 2008

In part 1, They call me a control freak – a drivers Tale, I explained driver handling in MDT Lite Touch. Now I continue with best practices for SCCM 2007 driver handling, control freak style (meaning, 100 percent working style)…

Background info…
In SCCM 2007 you group imported drivers into packages, and you can have two types of packages. Auto Apply Drivers and Apply Driver Packages. The Auto Apply Drivers package relies on PNPID detection, does not work with standalone media and does not support mass storage drivers for legacy operating system (Windows XP and Windows Server 2003). The Apply Driver Package, does not rely on PNPID detection and always works, no matter what… If you want 100 percent success, you should use the Apply Driver Package type. Period.

If you import the drivers, SCCM keeps track of each driver so if try to import the same driver again, it refuses to do so… So if you want to import duplicate drivers, you are in trouble…

The workaround is easy, just add a unique textfile to each folder (I prefer to use a textfile named OS – Platform – Model.txt). This will tell SCCM – Hey, I’m a unique driver – and SCCM will happily import it.

Note: In ConfigMgr 2007 you don’t have to import drivers in order to create Apply Driver Packages, however this is not supported by Microsoft and will prevent you from migrating those driver packages to ConfigMgr 2012. For more info on ConfigMgr 2012 and drivers, check this blog post: The Drivers Saga continues – How to Master Drivers in ConfigMgr 2012

Step-by-Step Procedure

In this guide we will create the structure, and I will use a 32-bit Vista deployment to a HP Compaq 8510w laptop as an example. There are two options, wither create the packages without importing the drivers, or import the drivers using the *.txt file method described earlier.

Common

  1. Create the following driver directory structure and share the D:\Drivers folder as Drivers$
     
    D:\Drivers\SRV2003X86
    D:\Drivers\SRV2003X64
    D:\Drivers\SRV2008X86
    D:\Drivers\SRV2008X64
    D:\Drivers\VISTAX86
    D:\Drivers\VISTAX64
    D:\Drivers\XPX86
    D:\Drivers\XPX64
    D:\Drivers\WINPEX86
    D:\Drivers\WINPEX64

     
  2. For this example (32-bit Vista OS, HP Compaq 8510w) we Copy the Vista x86 drivers for that model to the above folder (create subfolders like below, etc.
     
    D:\Drivers\VISTAX86\HP Compaq 8510w\Nic
    D:\Drivers\VISTAX86\HP Compaq 8510w\Audio
    D:\Drivers\VISTAX86\HP Compaq 8510w\Video 

     

Option 1 – Create Apply Driver Packages without importing the drivers…

Note 1: Again, in ConfigMgr 2007 you don’t have to import drivers in order to create Apply Driver Packages, however this is not supported by Microsoft and will prevent you from migrating those driver packages to ConfigMgr 2012. For more info on ConfigMgr 2012 and drivers, check this blog post: The Drivers Saga continues – How to Master Drivers in ConfigMgr 2012

Note 2: If you are adding storage drivers for legacy operating systems you need to import those drivers in order to be able to select them when adding the apply driver package containing the storage driver in the task sequencer.

  1. In the Driver Packages node, create a Driver folder structure in SCCM, example Driver Packages \ VISTAX86
     
    Se below. 

  2. Create a Driver Package named HP Compaq 8510w, as Source Path, set \\Server\Drivers$\VISTAX86\HP Compaq 8510w.

    Se below…


     

  3. No it is time to update the Task Sequencer, edit the Vista X86 task Sequence.
     
  4. In the Post Install node, disable the Auto Apply Drivers Action. After the disabled Auto Apply Drivers action, and before the Setup windows and ConfigMgr action, create a group named Apply Driver Packages.
     
  5. In the Apply Driver Packages node, add an Apply Driver Package with the following settings

    Name: HP Compaq 8510w
    Driver Package:  VISTAX86 \ HP Compaq 8510w.

    Se below image.
     

     

  6. Add a WMI condition to this action with the following settings:
    Query WMI: SELECT * FROM Win32_ComputerSystem WHERE Model LIKE “%HP Compaq 8510w%” .
     
    Se below image.
     
     
     

Option 2 – Create Apply Driver Packages and import the drivers

  1. In each unique above folder, create an empty text-file named: _VISTA X86 – HP Compaq 8510w.txt

    So now the D:\Drivers\VISTAX86\HP Compaq 8510w\Nic, the D:\Drivers\VISTAX86\HP Compaq 8510w\Audio and the D:\Drivers\VISTAX86\HP Compaq 8510w\Video folder all contains the file _VISTA X86 – HP Compaq 8510w.txt file.

    This file will make the folder unique to SCCM, and will allow you to import the same a driver twice to the rpository, but into a separate folder in the UI
     

  2. Next step we need to create a Driver folder structure in SCCM, example Drivers \ VISTAX86 \ HP Compaq 8510w
     
    se below…
     

         
  3. After the Drivers node structure is done, we do exactly the same thing for the Driver Packages structure. The difference is we only create the VISTAX86 folder, and then we create a Driver Package named HP Compaq 8510w
     
  4. Then we go back to the Drivers structure, select the VISTAX86 \ HP Compaq 8510w folder, and import the HP Copaq 8510w drivers (selecting the HP Compaq 8510w driver package during the wizard). 
     
  5. No it is time to update the Task Sequencer, edit the Vista X86 task Sequence.
     
  6. In the Post Install node, disable the Auto Apply Drivers Action. After the disabled Auto Apply Drivers action, and before the Setup windows and ConfigMgr action, create a group named Apply Driver Packages.
     
  7. In the Apply Driver Packages node, add an Apply Driver Package with the following settings

    Name: HP Compaq 8510w
    Driver Package:  VISTAX86 \ HP Compaq 8510w.

    Se below image.
     

     

  8. Add a WMI condition to this action with the following settings:
    Query WMI: SELECT * FROM Win32_ComputerSystem WHERE Model LIKE “%HP Compaq 8510w%” .
     
    Se below image.
     
     

 WinPE Drivers

  1. As a final not, let’s think about WinPE drivers… If you look carefully on the first image, you will se a WINPEX86 and a WINPEX64 drivers folder. Yes exaclty, of course we will have our own folder for WinPE drivers, using the same technique we have learned…
     
  2. In the D:\Drivers\WINPEX86 and D:\Drivers\WINPEX64, folders add your WinPE drivers to that structure. Also add a unique text file to each subfolder, like _WINPEX86.txt
     
  3. When importing the WInPE drivers to each folder, don’t add them to any group, because we will instead add them to the correct boot image. But, a tip, rename the drivers after importing them… for example, rename Intel Pro 1000 MT to WINPEX86 – Intel Pro 1000 MT… The reason for doing this is when we browser for drivers to our boot images, SCCM (for some odd reason) does not honour the folder structure, and if we named the drivers WINPE-something, they will be easy to find. Of course, if you are using option 1, using drivers without importing them, you don’t need to rename them…

    Tip!. If you get tired of the SCCM Console crashing everytime you rename a driver (or in fact renaming most things when running the console on a 64.bit server)… Hit Apply before you hit OK… :It really helps  🙂

Additional reading:

In the “A Drivers Saga – The Control Freak meets The Dynamic Developer” session at MMS 2010 in Las Vegas, me and Michael Niehaus presented different methods of managing drivers with MDT 2010 and ConfigMgr 2007. I focused on MDT 2010 Lite Touch, and Michael Niehaus did the ConfigMgr part. On top of that Michael started blogging about his part of the session… so now I have to do my part 🙂

Michael’s blogs on ConfigMgr Driver Management can be found here:

Part 1:
http://blogs.technet.com/mniehaus/archive/2010/04/29/configmgr-2007-driver-management-the-novel-part-1.aspx

Part 2:
http://blogs.technet.com/mniehaus/archive/2010/04/29/configmgr-2007-driver-management-the-novel-part-2.aspx

Part 3:
http://blogs.technet.com/mniehaus/archive/2010/04/29/configmgr-2007-driver-management-the-novel-part-3.aspx

/ Johan

MDT Database, Integrated security and SQL Cluster

By arwidmark / November 27, 2008

If you using integrated security (Trusted Connection) to connect to a MDT database hosted on a SQL Cluster, it will fail because of the WinPE Firewall.

The story is that WinPE (the client) communicates to the cluster node, but it is the actual physical machine that responds back, so the firewall sees it coming from a different address so it blocks it as unsolicited traffic (Thanks to Tim Mintner for the research).

Workaround 1 – Disable the WinPE firewall (warning – security risk)

Add the following command to your startnet.cmd

wpeutil.exe DisableFirewall

Workaround 2 – Use standard SQL Login

Specified by DBID and DBPWD in customsettings.ini

Note: In rare scenarios you may need to verify that you have matching versions of “dbnetlib.dll” and “dbnmpntw.dll” in WinPE. Thanks to Jason Miller for that info.

 

Configuring USMT in SCCM 2007 Zero Touch (MDT)

By arwidmark / November 17, 2008

Does USMT in SCCM 2007 Zero Touch driving you nuts? It could be because all details of the integration did not make it into the docs…  here are the missing pieces…

When working with USMT in SCCM 2007 Zero Touch (MDT), you need to specify two different types of rulesets, one for the estimation part, and one for the actual deployment.

For the estimation part, you use the MDT variables (USMTMigfiles, Scanstateargs etc.), and for the migration part, you use the SCCM variables (OSDMigrateConfigFiles and OSDMigrateAdditionalCaptureOptions).

Here is a sample customsettings.ini (Settings Package)

[Settings] Priority=Default
Properties=OSDMigrateConfigFiles,OSDMigrateAdditionalCaptureOptions

[Default] OSInstall=Y
DoCapture=NO
ComputerBackupLocation=NONE

; Only used for Estimate pass
UsmtMigFiles1=Data1.xml
UsmtMigFiles2=Migapp.xml
ScanStateArgs=/ue:*\* /ui:TSLAB\*

; Only used for Actual Migration
OSDMigrateConfigFiles=Data1.xml,Migapp.xml
OSDMigrateAdditionalCaptureOptions=/ue:*\* /ui:TSLAB\*

You also need to edit the Task Sequencer (See below)

 

Note: If you want a refresh installation to always store the data on the SMP, just disable the “Determine Local or Remote UserState” action in the Task Sequencer.

 

 

So your Nvidia driver will not install on Windows Vista?

By arwidmark / November 4, 2008

So your Nvidia driver will not install Windows Vista? Well it might be due to driver ranking, but the most common issue is actually WinPE scratchspace configuration.

Background:
When Vista install the driver it uses the WinPE scratchspace as temporary storage. The problem is that some drivers, like Nvidia, are much bigger then the default scratchspace (32 MB) in WinPE 2.1.

To verify that it really is the scratchspace size causing the problem, check the setuperr.log file in the C:\Windows\Panther folder.If it looks like below, the solution is simple, increase scratchspace… (see further down)

2008-10-29 11:00:17, Error                 CBS    Pkgmgr: Install Drivers Offline Callback: ERROR:  Failed to stage driver ‘C:\Drivers\Video\nv_disp.inf’ (HRESULT= 0x8007001D). (Error code (HRESULT) 0x8007001d.)
2008-10-29 11:00:17, Error                 CBS    Pkgmgr: Install Drivers Offline Callback: ERROR:  Failed to install driver package ‘C:\Drivers\Video\nv_disp.inf’. (Error code (HRESULT) 0x8007001d.)

Step-by-step to increase the scratchspace in WInPE 2.1

  1. Mount the LiteTouch_x86.wim file using imagex.
     
    Imagex /mountrw LiteTouch_x86.wim 1 d:\mount
     
  2. Increase the scratchspace using PeImg

    PeImg /Scratchspace=128 d:\mount\windows
     

  3. Commit the changes
     
    Imagex /unmount /commit d:\mount
     

Capture only Task Sequence for MDT 2008 (Lite Touch)

By arwidmark / October 28, 2008

This is sample Task Sequence that will do automated capture only. It will apply WinPE to disk, run sysprep, reboot into WinPE and capture the installation, fully automated.

Note: Updated 2008-12-03 with the following new features. 

– Better pre.req check (for sysprep.inf and unattend.xml files)
– Improved logging.
– Setting the correct Image Flag when deploying Vista or higher

Step-by-step.

  1. Download the Sample files from
    http://www.deployvista.com/Repository/tabid/71/EntryId/52/DMXModule/396/ctl/EntryDetails/mid/396/language/sv-SE/Default.aspx
     
  2. Copy the CaptureTS.xml to C:\Program Files\Microsoft Deployment Toolkit\Templates.
  3. Copy the Z-CaptureOnlyValidation.wsf file to \Distribution\Scripts.
     
  4. Create a new Task Sequence in MDT 2008 with the following Settings
     
    Task Sequence ID: Capture001
    Name: Capture Reference Image
    Template: Capture Reference Image Task Sequence
     
  5. Edit the Capture Reference Image Task Sequence and set the Set Image Folder and Set Image Filename parameters. Se below.
     

     
  6. Review the sample bootstrap.ini and customsettings.ini and make necessary changes (username etc.) in yours.
     
  7. On the machine ready to be captured, logged in as a local administrator, run \\server\distribution$\scripts\liteTouch.vbs, select the Capture Reference Image Task Sequence and have some well deserved coffee 🙂

Sample Storage Drivers and Sysprep.inf for Windows XP builds (MDT 2008)

By arwidmark / October 27, 2008

Need to create an hardware independent Windows XP image?  Here are the instructions, base drivers and sysprep.inf to get you going… The instructions are for MDT 2008 Lite Touch

Step-by-step…

  1. Download the files from:
    http://www.deployvista.com/Repository/tabid/71/EntryId/50/DMXModule/396/ctl/EntryDetails/mid/396/language/sv-SE/Default.aspx
     
  2. Copy the $OEM$ folder to \Distribution\Operating Systems\
     
  3. Update the [SysprepMassStorage] section in  \Distribution\Control\\Sysprep.inf file with info from Sysprep_massstorage.txt
     
  4. In the Windows XP Task Sequence, disable the Capture Image -> Add mass storage drivers to sysprep action

Best Out-of-Office message.. Ever…

By arwidmark / October 23, 2008

I could not help posting this, from this summer, plain funny.
The name has been removed to protect the innocent 🙂

I received your e-mail, but I’m not going to read it.  I’m on vacation until and don’t plan to read any e-mail between now and then.  There will also be too much of it to read once I’m back, so don’t expect me to get to it then either.  I plan to delete all of it.  So if you want me to read it, send it to me again after .

You can try to call my cell phone, but I won’t answer it nor do I plan to return any calls made.  I also will not be on IM. Just accept the fact that I really am on vacation and have every intention of ignoring anything work related for the entire duration.

Merci beaucoup, danke sehr, dank U wel, thanks,

 

Configuring SCCM 2007 for native mode

By arwidmark / October 21, 2008

So you want to run SCCM 2007 in native mode?  Here you find some notes and step-by-step actions on how to do this…

First, make sure you really want to do this.

Choose between Native Mode and Mixed Mode
http://technet.microsoft.com/en-us/library/bb632431.aspx

Second, review the (quite detailed) checklist

Administrator Checklist: Migrating a Site to Native Mode
http://technet.microsoft.com/en-us/library/bb632727.aspx

For most installations, you will have to do the following

1. Create a custom web site

Configure Custom Web Sites for Configuration Manager Sites
http://technet.microsoft.com/en-us/library/bb693482.aspx

Configure a Configuration Manager Site to Use a Custom Web Site
http://technet.microsoft.com/en-us/library/bb693662.aspx

2. Create the necessary PKI Infrastructure

SCCM 2007 PKI with Windows Server 2003 CA
http://technet.microsoft.com/en-us/library/bb694035.aspx

SCCM 2007 PKI with Windows Server 2008 CA
http://technet.microsoft.com/en-us/library/cc872789.aspx

3. Configure a Fallback Status Point (less secure, but really useful)

Create a Fallback Status Point in Configuration Manager
http://technet.microsoft.com/en-us/library/bb680830.aspx

4. Switch to native mode

Configure the Site Server with its Site Server Signing Certificate
http://technet.microsoft.com/en-us/library/bb680769.aspx

Specify the Root Certification Authority Certificates for Operating System Deployment Clients
http://technet.microsoft.com/en-us/library/bb632596.aspx

Migrate the Site Mode from Mixed Mode to Native Mode
http://technet.microsoft.com/en-us/library/bb633152.aspx

They call me a control-freak… a drivers tale…

By arwidmark / October 11, 2008

Let me start by clearly stating that I really like (most) of the changes the MDT development team did for Lite Touch driver handling in Update 1 of MDT 2008. But, do I think the default driver injection mechanism works for all scenarios?

Not Really… Luckily, Lite Touch offers several methods for dealing with drivers 🙂

Background – Lite Touch and Drivers
The default driver injection mechanism in Lite Touch works with pnpid detection. You simply import the drivers into the deployment workbench, during import the workbench parses all drivers and builds a list of all drivers and their pnpid’s (stored in drivers.xml).

When you deploy a machine,a component detects the pnpid of the hardware you actually are deploying to, and then matches those id’s against the repository on the server. Best matching driver wins and is downloaded to C:\Drivers (to be injected later on).

Pros with the default behaviour are
– Easy to import drivers
– Works with most hardware

Cons with the default behaviour are
– Works with most hardware still means failing on some (certain soundcards in particular)
– Hard to maintain (updating, and removing drivers)
– When dealing with multiple OS’s and Architectures it gets even worse

I prefer to use another method for driver injection

I build a separate folder structure and then configure my Task Sequence to use that one instead (using DriverPaths variables)

Pros with method are
– Always works, for all operating systems, architectures and hardwares

Cons with method are
– Consumes more disk space on the server
– Takes a few more minutes to setup

Step-by-Step Procedure

This sample assumes your deployment point is D:\Deploy, shared as Deploy$. In this example we add support for the HP Compaq 8510w model.

  1. Create the following directory structure

    D:\Deploy\Drivers\SRV2003X86
    D:\Deploy\Drivers\SRV2003X64
    D:\Deploy\Drivers\SRV2008X86
    D:\Deploy\Drivers\SRV2003X64
    D:\Deploy\Drivers\VISTAX86
    D:\Deploy\Drivers\VISTAX64
    D:\Deploy\Drivers\XPX86
    D:\Deploy\Drivers\XPX64 

     

  2. For each Task Sequence, add the DriverPaths1 variable. Below is a sample for the VISTA X64 Task Sequence:

    Before the driver injection action, Add a Task Sequence Variable action with the following settings

    DriverPaths1
    %DEPLOYROOT%\Drivers\VISTAX64\%Model%
     
     
     

  3. Find out the model name (WMIC CSPRODUCT GET NAME), and create the folder: D:\Deploy\Drivers\VISTAX64\HP Compaq 8510w
     
  4. Copy the Vista x64 drivers for that model to the above folder (create subfolders like below, etc.)

    D:\Deploy\Drivers\VISTAX64\HP Compaq 8510w\Nic
    D:\Deploy\Drivers\VISTAX64\HP Compaq 8510w\Audio
    D:\Deploy\Drivers\VISTAX64\HP Compaq 8510w\Video


Oh, You wan’t to know about the headline background?  Well, I got that back (in writing) from a MDT Developer when presenting this solution…

 Who the devloper was? I would never reveal any names, but it begins with a M… 🙂

1 7 8 9 10 11 15
Page 9 of 15