Inside ConfigMgr 07 Operating System Deployment

Installing a Custom GINA

Recently, we've had some questions about how to install a 3rd party GINA as an Install Software step during an OSD Task Sequence.  The best solution is to install the GINA in the reference image outside of OSD.  However, if this is not possible and the GINA must be installed during the Task Sequence, then a small workaround is required.  Frist I'll explain why GINA installations are a special consideration for OSD.  Next I'll outline a method which should enable this scenario.

OSDGINA.DLL

When deploying Windows 2000, Windows XP, and Windows 2003, OSD installs a custom GINA (OSDGINA.DLL) after applying the image (or via cmdlines.txt for the unattended install case).  This allows OSD to install the ConfigMgr client, complete the task sequence, and block user logon until the task sequence is complete. 

When OSDGINA.DLL is installing, it checks the registry to see if a GINA other than MSGINA is installed, and if so, backs up the value of HKLM\Software\Microsoft\Windows NT\CurrentVertion\Winlogon!GinaDLL to OSDOldGinaDLL.  When the task sequence is complete and OSDGINA.DLL is uninstalling, it restores any value which was backed up to OSDOldGinaDLL.

When a custom GINA is installed, it overwites the GinaDLL registry value and triggers a reboot.  This effectively aborts the Task Sequence, since it is OSDGINA.DLL that bootstraps the Task Sequence after any reboots in the new operating system, until the Task Sequence has completed.  Since OSD pauses Software Distribution until the end of the Task Sequence, this also means that Software Distribution will remain in a paused state.

The Solution

For the installation of a custom GINA in an Install Software Step (as part of an OSD Task Sequence) to work correctly, the GinaDLL value needs to be restored to “OSDGINA.DLL” and the OSDOldGinaDLL value to be set to the GINA DLL for the custom GINA.  This can be accomplished by suppressing the reboot triggered by the Install Software action for the custom GINA, and running a custom command line step right after to make the registry changes.  Assuming for the sake of illustration that the custom GINA DLL is MYGINA.DLL, the registry needs to end up looking like this:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon!GinaDLL = OSDGINA.DLL

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon!OSDOldGinaDLL = MYGINA.DLL

You can have this step reboot to clear the pending reboot, if desired.

Published Friday, June 06, 2008 9:52 PM by vsletten

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

ib said:

Hi,

I was wondering if you could give me a step brief by step on this as I am having difficulty with installing my custom Gina. I have included my custom gina in the reference image but it is not applied after the captured wim is deployed via OSD in SCCM. I have tried the above and many variations, but I am unable to automate the inclusion of my custom gina.

Please note I am working with XP SP3 OS images.

Any advice would be appreciated,

Thanks,

IB.  

August 22, 2008 12:16 PM
 

mlu said:

Please explain more about creating custom GINA as I am new to this concept.

November 11, 2008 7:17 AM

Leave a Comment

(required) 
(optional)
(required) 

  
Enter Code Here: Required
Submit

About vsletten

I'm an SDE for System Center Configuration Manager. I joined Microsoft in the summer of 2004, at the beginning of the release cycle for ConfigMgr 2007.

© 2010 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker