Windows 7 Deployment FOG- SAD2 Driver tool

Discussion in 'Tutorials' started by andyroo54, Feb 25, 2012.

  1. andyroo54 Community Manager

    UPDATED current as of April 2014
    WINDOWS 7: Deploying to Any Machine with FOG- STEP BY STEP

    This is a guide to deploying Windows 7 from FOG, in particular deploying one image to multiple hardware; desktops, laptops etc. I have written it step by step so it is easy to follow along. You may find better ways to do things and if so feel free to comment in the thread or ask questions.

    Note: I am no expert! The following is just the way I have deployed Windows 7 in our environment. I'm not saying it is the only way or even the right way to do it. But this way works, as demonstrated by others and is totally unattended.

    We have used this method for around two years now and it still works perfectly.

    What you need- Basics*

    a) Some time. Don't expect to get it right the first, second, or third time. One thing you should do is document your entire process. It's not hard to have a text document open while working and detail what you have done as you go. Plus if your boss asks you what you've been doing you can show him!
    b) Virtual computer software. I used VMware workstation 8, I recommend this and will be detailing the guide using workstation 8. You can download a free trial from the VMware site:
    c) Windows AIK tools (automated install kit)- We only need Windows system manager from this:
    More info on AIK:
    d) An ISO or DVD with windows 7 on it. For this guide I will be using Windows 7 Professional, because all our new machines come with licenses already. I will be making both an x64 and x86 SOE.
    e) An external HDD or a large spare internal for the virtual machines. If external I suggest using a fast connection like esata.
    d) The best physical machine you can get- dual core minimum- quad core is better, and 8GB ram.
    Note: *There will be some other utilities needed along the way

    Step 1: Deciding on what you want

    Initially I only sought to build an x64 version of windows- however I found once I got to the drivers stage that, yes surprisingly old hardware has x64 CPU support, however x64 drivers do not work all. I will elaborate on this point at the drivers stage.
    So in this write up I will be making both an x86 image and an x64. The only difference between the two in terms of the build is the drivers stage and of course the initial installation on the virtual machine (VM). So I will continue this tutorial detailing one build, but where the two differ I will point that out. I recommend building both at the same time so you apply changes etc to both.

    Step 2: Creating the Virtual Machines

    From the VMware menu, select File>New virtual Machine- select custom then next. Leave hardware compatibility as Workstation 8.0- Next.
    Choose "I will install the operating system later"- Next.
    Set Guest operating system as Windows 7- Next. Then name your virtual Machine. Call one Windows 7 SOE x64- call the other Windows 7 SOE x86- Next. * you can only build one virtual machine at a time.
    Set the cores to two as below- Next.
    Give your VM 2GB of RAM if you can, or minimum 1GB- Next.
    Make sure you choose "Use bridged networking", to ensure PXE boot works correctly- Next.
    Leave the I/O controller as LSI logic SAS- Next.
    Choose "Create a new virtual disk"- Next.
    This step is IMPORTANT. Make sure you choose the disk type as "IDE". I found that FOG will NOT upload virtual machines with SCSI drives- which is actually what VMware recommend.-Next.
    I suggest setting the disk size of 60GB. - Next- Next- Finish. Your Virtual PC is now built, but not powered on.

    Now is a good time to register the client machines in FOG. It is better to do this before you begin building the image. NOTE: I found that in order to PXE boot the virtual machine, I had to create a new local user on my physical machine.
    Type "lusrmgr.msc" into run and the choose users. Create a new user called "__vmware_user__" with the underscores. Do not set a password. Add them to the local administrators group.


    You should now be able to PXE boot to your menu. Perform a full registration of the host.
    Only set the computers name- and host OS if you have this set (windows 7)- leave all other options blank.

    The machine will reboot, it will attempt to boot from C:\ but no OS exists. Power the machine off again. The machine should now exist in FOG.
    Step 3: Installing Windows and entering Audit Mode

    In VMware while the machine is off- Choose "Edit virtual machine settings"
    Select CD/DVD device, then either point the machine to a physical DVD drive with win 7 in it, or directly to an ISO file. There is no need to mount the ISO if you have one. I'm using an ISO. You can download win 7 ISO's from this page: or from TechNet if you have a subscription.
    Power on the VM. It will start installing Windows 7. Choose your language/time/keyboard input: Next.
    Note, the Virtual machine may seem to lag until you have installed VMware tools.
    Choose "Install Now"- Accept the license terms and hit- Next.
    Choose "Custom"- Select your one and only disk and hit Next.
    Windows will now start installing. This may take some time. After it has installed, Windows will reboot.

    When the machine comes back up- DO NOT go any further. Do not name the machine etc. At this screen:
    Press CTRL+SHIFT+F3. The machine will reboot and go into Audit mode. Once back up the Machine will auto log on as a local administrator with no password set. You are now in Audit mode, and it's time to take the first of many Snapshots!
    From VMware, right click the machine name and choose: Snapshot> Take snapshot. Be sure to give a brief description so you will know where you were if you need to go back. It is hugely important to utilize snapshots during this win 7 build process, I can't stress that enough. If you make a change that stuffs something up- you can always revert to beforehand.
    I suggest to then install VMware tools. From VMware menu, choose "VM> Install VMware tools". Follow any on screen prompts from the virtual machine. After installed take another snapshot. This is useful because it improves mouse interaction and allows you to drag and drop files to the VM from your physical machine.
    pdpk, rado, Knight and 7 others like this.
  2. andyroo54 Community Manager

    STEP 4: Making an unattend.xml

    Now we are going to create an answer file. What you do here will vary depending on what you want automated. An answer file is responsible for automating the setup stage of windows 7 once deployed to a machine from FOG. This part is difficult to write a tutorial for, as it is complicated to explain- but is actually very simple once you have looked into it for a while.
    You should have downloaded AIK tools and installed. From your physical machine start menu launch "Windows system image manager".
    NOTE: If you need more detailed information on the Answer file process check here:

    You will need to have your .ISO or win 7 DVD mounted/inserted. Choose "File>Select windows image". Choose the win 7 DVD iso. You now need to choose a .clg file. In this case choose "install_windows 7 PROFESSIONAL.clg"
    What this does is give you the "catalogue" options for that version of Windows 7.
    Now make a new answer file. Go "New> Answer file". Be sure to save this now- call it "unattend.xml".
    IMPORTANT: If you are making an X86 and X64 version, you must make two different answer files. Make one after the other. You will need to unmount the first DVD and then select the other, and re open the .clg catalogue files as explained above. I suggest making a folder called "unattend files"-then making one sub folder for your X86 and one for your x64. Note the difference between 86 and 64:
    Now basically you can add "components" to the file, by dragging and dropping things you want into the answer file. I will detail what I have added to my answer file- you may want to customize your own further.
    1) Windows PE
    Add "x86_Microsoft-Windows-Setup_Nuetral" or "amd64_Microsoft-Windows -Setup_neutral".
    Set "Use ConfigurationSet to "true".
    3) Generalize
    Add "x86_Microsoft-Windows-Security-SPP_neutral" or "amd64_ Microsoft-Windows-Security-SPP_neutral"- Set value to "1". This will skip the windows licensing program.

    4) Specialize
    Add these three components. Substitute x86 or amd64 depending on which answer file you are doing.
    a) _Microsoft-Windows-Deployment_Neutral
    b) _Microsoft-Windows-Security-SPP-UX_Neutral
    c) _Microsoft Windows-Shell-Setup_neutral
    Like so:
    I will now show what to add for each above component.
    a) _Microsoft-Windows-Deployment_Neutral
    Right click and "Insert new Runsyncronouscommand".
    Set the options below. This will activate the built in administrator account during setup.
    b) _Microsoft-Windows-Security-SPP-UX_Neutral
    Set to "true". This will skip automatic activation.

    c) _Microsoft Windows-Shell-Setup_neutral
    I set computer name to "RENAME"- Fog will rename when first logged on, or you can do it manually.
    Set copy profile to "true"- this will copy your administrator account profile as the default profile for other users, including domain users.
    You can put a dummy product key in to make sure it skips this during setup. You can set the real license key later. A full list of keys is below.
    Operating System Edition
    Product Key
    Windows 7

    Windows 7 Professional
    Windows 7 Professional N
    Windows 7 Enterprise
    Windows 7 Enterprise N
    Windows 7 Enterprise E
    Set "show windows live" to False.
    Set your time zone.

    7) OOBE System
    a) _Microsoft-Windows-International-Core_neutral
    Set your language settings here, mine is for En-Au (English:Australia)
    b) Microsoft-Windows-Shell-Setup_Neutral
    Under "autoLogon" set enabled to: true (this will set windows to automatically log on after imaging)
    Set logon count to 3 (this means it will automatically log on three times to the local admin account after deploying image from FOG)* I have since dropped this to 2, because I've found I don't need 3 for my setup.
    Set username to "administrator"
    Then add the administrator password also.
    Under "OOBE" set the options as follow:

    Under "User account" set the administrator password.
    Now you need to add something extra here to the Shell setup. Go back to components and to the Shell setup neutral component. By default, shell setup won't add local accounts as an option. You have to drill down like below then drag local accounts across under shell setup.
    Now configure the local administrator account as below:
    ..and don't forget to set a password. This will be the account windows uses to log on the first time after install.
    Ok that's it for the unattend file. As mentioned above make sure you have a x86 and x64 unattend.xml if you are making both SOE.
    boon and danuel like this.
  3. andyroo54 Community Manager

    Step 5: Customizing windows installation- Free for all

    Ok this section is really up to you. Here you can make any changes you want to windows for when it is deployed. I will list some of the things I have done to give you an idea of what you might like to do. I'm sure you will come up with your own idea for how you want to customize windows 7. I suggest making snapshots as you go along.
    Installed VNC 1.0.9 set password - This allows us to remote control machines across the network for support reasons.
    Enabled Remote desktop (windows)- As a backup to VNC.
    Added Sysinternals
    Upgraded IE to 9
    Disabled System restore- Not needed, FOG is our system restore :)
    Set boot animation custom- I made my own custom windows boot animation- I animated our company logo- instead of the normal win 7 startup animation. It's not hard to do, and you can download a neat tool to do it very easily here:
    Your animation has to be 105 frames long- and it is 7 seconds long- running at 15/fps. The first 4 seconds play then the last 3 seconds loop until the machine starts up.
    IMPORTANT NOTE: Some third party tools like can really ruin your day- I used another program to change the startup sound for win 7 and after a lot of trouble shooting figured out it was the cause of a problem I was having where the imaged machines were not working properly. That said I have fully tested the above boot animation changer tool and it works flawlessly.
    Set Desktop background
    Set win 7 basic theme as default
    Set log on backgrounds in regedit- Here you can create custom logon screens. This is the screen before you logon. You can make one for each common resolution- and also set a default background for when it can't find the right resolution.
    1) Start registry editor (Start>Regedit)
    2) HKLM\SOFTWARE\Policies\Microsoft\Windows\System

    Click on background- and Create a new 32 bit DWORD called "useOEMBackground". Set the value to "1".

    EDIT: I found that while this does work, it won't use your other dimensions, only background default. You should actually modify this registry key:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background Now in right-side pane, change value of OEMBackground to 1
    Now you have to create the folders in C:\Windows\System32\oobe\info\backgrounds
    Now place all of your background files in that folder. You have to name them in this fashion:
    background1024x768, background1920x1080 etc. The images you make should be the correct dimensions or they won't work. Also they can't be over 250 kilobytes or they won't work. I use Photoshop's save for web feature which cuts the size down of images greatly.
    Now users will see a custom background when they get to the log on screen.

    Set a few local accounts for our company that we use
    Set default user account picture
    Local Group policies
    Load specific theme
    Prevent users changing theme (can still change background/window colours etc)
    Allowed users to install print drivers/usb hub drivers
    Set screen to 15 min Lock out
    Prevent changing screen saver/password on wake up
    (SECPOL) Behaviour of the elevation prompt for admins in admin approval mode: Evaluate without prompting
    (SECPOL) Interactive Logon hide last user
    (SECPOL) Switch to the secure desktop prompt for elevation: disabled
    Windows Defender off
    Power options: never turn off hard disk
    Remove windows media centre
    Turn off all warning messages in windows action centre
    Set OEM information via regedit- Here you can customize what it says when viewing system properties. You can do this via a regedit. Just copy and paste the below into a .reg file and edit the field I mark in red.
    Windows Registry Editor Version 5.00

    "Manufacturer"="Kramerica Industries"
    You also need to create a .bmp file in the location C:\Windows\System32\ called "oemlogo.bmp", it should be no bigger than 115x115 pixels.
    Windows Updates- We pointed our image to our WSUS server, and installed as many updates as possible before upload.
    Again, the above is just an example, you don't have to follow these steps if you don't want- that said I will make a couple of exceptions and say that the secpol (secpol.msc) changes really are necessary and you should do them. If not you can cause problems with snapins prompting for approval, instead of being fully unattended.

    Step 6: An important thing to do

    Now you need to place your unattend.xml file in it's location. This location is the same for both x64 and x86 images:
    Your unattended file will be processed during sysprep.

    Step 7: First log on script- This is important!

    After FOG has imaged your computer and setup has run, windows will run a script that we will now make. You need to make a folder called "scripts" in the C:\Windows\setup\ directory:

    In the scripts folder you need to create a .cmd script called "setupcomplete.cmd". Copy and paste the below into this script.
    @echo off
    del /Q /F c:\windows\system32\sysprep\unattend.xml
    del /Q /F c:\windows\panther\unattend.xml
    START C:\Drivers\SAD2-111118\DP_Install_Tool.cmd

    This script will perform three critical things: It will delete your unattend.xml file from the original location and the location it is copied to during sysprep, and it will also call the wonderful SAD2 driver install tool to run. I will explain more about the SAD 2 drivers tool in the next step.

    Step 8: Drivers- SAD2

    This is the method this guide uses to install drivers on any machine after the initial imaging.

    Essentially after install on first logon, the "setupcomplete.cmd" script will call the "SAD2" driver tool to run. The SAD2 driver tool was made by community members of the forums.

    UPDATE: There is some confusion on which version to use, how to modify it, where to download it, etc, so I'm making it very simple.

    You can download the folder which has the SAD2 script already modified and the correct folder structure setup. There is no need to download the latest version of the SAD2 script from driver packs forums.


    If you can't download it from there PM me and I will email it to you.

    First, extract the .zip archive and you will get a folder called "Drivers".

    Put this folder "drivers" in root of C:\

    Then download the driver packs you want from here:

    If it is x64 bit image you are making, put driver packs here:


    Or here for x86:


    This is what SAD2 looks like:

    So in the x64 image you only put the 64 bit drivers into the x64 folder, and for the x86 image you only put the 32bit drivers into the x86 folder.
    I made a few changes to the "DP_Install_Tool" to make it fully unattended, and also so that it restarts the PC after the drivers have been installed, and deletes the driver packs from the image.

    I suggest creating another snapshot and testing that the tool runs correctly. You can also try the tool out manually. Just manually run the DP_Install_tool.cmd and it will install required drivers for your machine.

    Attached Files:

    falko, Knight, danuel and 1 other person like this.
  4. andyroo54 Community Manager

    Step 9: FOG service and sysprepping/fogprepping

    Now the final steps should be to:
    1) Install the FOG service, navigate to:
    And install the FOG client service. [BE SURE TO REPLACE YOUR "Hostnamechanger.dll" or your machine won't rename and add to domain after imaging". Replace this after FOG client is installed.
    2) Download and Run "FOG Prep"- This is important for uploading windows 7 machines.

    The virtual image almost ready to upload to FOG. The last step is to run the system preparation too. If you closed it you can access it in:
    Before doing the below, I strongly suggest to take a snapshot! It's likely you will want to re-upload the image many times before you are happy with it. Plus you can then easily add updates/changes from that snapshot position.
    Have the cleanup action to go into OOBE mode, and tick generalize. Set the shutdown option to "shutdown", then hit OK. Sysprep will start working. Once finished the machine will then shutdown. Now the next time it powers on we want to upload FOG before windows starts again. You can also take a snapshot before you run sysprep and then let it reboot without capturing it, to make sure everything works on the next boot up before uploading it to FOG.

    Step 10: Creating the image in FOG
    Select "Image management" in the FOG console. Then choose "new image". Name the image-and select "Single Partition" (NTFS Only, Resizable).

    Now go to your host and reference the newly made host image to your registered host machine.
    Then choose "Basic Tasks" from the menu to the left. Choose "upload Image">"Upload image". The task will start. Fog will automatically resize the partition for upload.
    Now you just need to turn your virtual machine back on, and hit F12 to ensure it network boots. If it PXE boots then FOG will grab the image and upload it! If windows starts then you have not successfully PXE booted and you need to return to your snapshot- and re run sysprep. My Final image size was approx 10GB.
    You are finished!
    That's pretty much it. Now you can deploy the image to other psychical machines by the standard process. Thanks to the SAD2 tool drivers are a breeze, that said, Windows 7 and Sysprep will handle the majority of the essential drivers, but it's nice to get the correct drivers from SAD2.
    I have deployed this on many machines. Most recent machine I was testing was a Lenovo desktop, CPU i5 quad, 4GB ram, onboard graphics and I put an SSD in it and it imaged in two minutes dead (I tried another with the original mechanical drive, and it managed two minutes- five seconds).. It finished the windows deployment in another 2 minutes approx. It auto logged on and deployed SAD2 and installed drivers in around 4 minutes, then rebooted, joined the domain and renamed. All up it was probably done in around 15 minutes max.
    I hope this guide will help you in some small way. I don't think it's possible to make a 'one guide fits all' for win 7 deployment, because there are just so many variables, but I hope this might help get you started. Thanks for reading!

    Please feel free to comment etc below.

    - A. Hingston 2012
    JohnK, Knight, Tom Elliott and 5 others like this.
  5. falko Community Manager

    great article, I myself have been going through similar process based on this guide (just what you have done but with VirtualBox) my next stage was to look into the automation of drivers, which you have covered.

    Thanks for sharing :D will definitely help me and others, a few of my new machines network cards are not detected by Win 7 so cannot auto join domain until I manually installed the driver

    UPDATE: just implemented this into a test image, and it works great, now it will install missing NIC driver and allow fog to continue with AD joining. Cheers
  6. andyroo54 Community Manager

    Hi Falko,

    I hope it can help you out, if you have problems just ask and I will help if I can! I might clean up the formatting in this thread tomorrow and I will no doubt make changes/additions as I continue to test this into the future.
  7. Dean211 New Member

    Now that's a great guide. good job Andyroo45.
  8. Kevin Community Manager

  9. andyroo54 Community Manager

    Hi Kevin thanks, and yes any resources, the more the better. No one guide for this will be perfect, especially the XML as it so customizable . And I encourage others if they use this guide to post their results, and suggest changes if they see fit.
  10. Smog Member

    Thank you very much, andyroo54!
    Although I haven't read the whole document, I'm sure it will help.
  11. andyroo54 Community Manager

    There will be some small updates to this, I've found that if FOG is installed before syspep then while the DP install tool is running it can cause the machine to restart in order to rename/join to domain. I will update tonight with my solution.
  12. falko Community Manager

    I haven't had this issue when testing, I thought FOG is only meant to restart when no user is logged in?
  13. Mike Mcloughlin New Member

    Thanks for the guide, i have 3 days to learn to create and deploy a windows 7 image and this is helping a great deal. Am i missing something though? You said in the guide you get the to entering the correct install key? I cant see that part anywhere.

    Also If all the keys are different how does activation work? I have 7 new Windows 7 machines that are factory sysprepped but i want to windows update them and install company specific software and then sysprep again ready for FOG deployment.
  14. ssx4life Member

    Activation should be done by the KMS server (assuming you are using a volume license server). Otherwise you will need to hand-activate all the machines or use something like the opa tool - (again... YOU MUST KEEP YOUR LICENSES STRAIGHT! IF YOU ARE LICENSED FOR PRO, LOAD PRO, etc.) I'm not condoning piracy here.... use your head people.

  15. Mike Mcloughlin New Member

    What i meant to say is, each of my PCs have their own key on the case label. They have a factory image on at the moment as in when they boot up it goes through the sysprep steps and is activated automatically. so i dont fully understand which key i would use in sysprep to get them to activate. I could go round after each machine has been imaged and enter the key on the case but that kinda defeats the point of an automated system. XP was so much easire o_O
  16. andyroo54 Community Manager

    Hi Mike,

    Glad you are finding it useful, but as ssx4life says the only way to make that part automated is use a license server, there really isn't anyway for this process to grab the product key automatically, because the only place it exists is stuck onto the side of your pc. At some point you would have to type it in anyway, so why not just once the PC is imaged and you are checking it over.

    There could be a way to manually enter the key during sysprep, if you removed that option from the unattend.xml file. But I wouldn't suggest that. You are better off doing as I detailed in the guide:

    "You can put a dummy product key in to make sure it skips this during setup. You can set the real license key later. A full list of keys is below.
    Operating System Edition
    Product Key
    Windows 7

    Windows 7 Professional

    Note, these are NOT pirate license keys, they are provided by Microsoft to make the process unattended. Windows will SKIP activation using this key, but it will not auto activate, so you will have 30 days to enter the real product key.

    For me, I always check a PC over anyway while it is installing snapins. It's not too hard to enter the product key then. Especially because 7 PC's is not a lot really. It might be annoying, but just think of the time an unattended install will save you!

    So in your case, the best thing to do would be to get one of the machines, (don't bother with a virtual, it will be faster with a psychical PC and since you are deploying to the same machines it will make more sense).

    1)Fresh install windows 7, and then launch it into audit mode from the start of setup as detailed above,

    2)Install any MS windows updates you need to,

    3) Install any company software you need, if you are not going to use snapins,

    4) In your case, if you are in a rush, and they are all the same hardware, I would just update the drivers in this master image, and not worry about the SAD DPinstall tool. That way the other machines you deploy to will have the correct drivers already.

    5)Make any other changes you want to the OS, local user accounts, etc etc.

    6) Use an unattended.xml file as detailed above to make the deployment unattended.

    7)Then start the sysprep, and then upload it to FOG as it reboots.

    * Make sure you don't activate Windows with a key before you upload it, you will need to do that after you have deployed it to all your machines.

    Hope this helps.
  17. andyroo54 Community Manager

    Well I have this problem, and it was annoying! My work is evacuated all this week due to floods and I can't remote in due to telecommunications dropped out, so I can't show my modified script, I will post it when I can but this is what I did:

    **Image before sysprep, before fog upload**

    1)Removed fog

    2)To the DPInstalltool.cmd script, at the end of the drivers installation before the script exits, I added a command to silently install FOG, then I let the script sleep a bit using PING ( I found that SLEEP.exe wouldn't run when it was being called by the setupcomplete.cmd script, very strange).

    3) Then I got the script to move the "hostnamechanger.dll" to the Fog directory.

    4) Then I got the script to clean up the SAD folders and delete all the drivers and D folder, and then restart the machine with a 30 second warning.

    This took a little bit of testing playing around to get it right, but it appears fine now. Again I will update the guide+this thread when I can.

  18. danuel New Member

    Best Regards!!

    Works very good!! Best Tutorial! :D Thank you andyroo54
  19. falko Community Manager

    cheers for the update, any chance of updating to the latest DP Tool?
  20. bobdigby New Member

    Thanks andyroo54 for your guide. I have used most of your guide but added my own bit at the end which some people may be interested in.

    Loved the idea of the SAD2 for drivers but to keep image size down and to add drivers without having to update the image I did the following. I injected all Windows 7 ethernet drivers from driverpacks into my image when offline before uploading to FOG only adding around 200mb to the image file using dism inject see (near the end) for more details.

    I then used your script to call SAD2 but from a network location on first boot using the setup scripts, so instead of START C:\Drivers\SAD2-111118\DP_Install_Tool.cmd I used START \\nas\Drivers\SAD2-111118\DP_Install_Tool.cmd . I setup a basic share with no authentcation on my NAS so any machines could read the files. If I ever need to update the driverpacks I can do all of this without ever touching the image. Hope this helps someone.


    heckmaster likes this.

Share This Page