Customization in Sysprep
- FOG Version: 1.2.0
- OS: Ubuntu 14.04
- Service Version: Not sure what this means
- OS: Windows 10 Home Edition
TL;DR : How do sysprep a windows computers such that I can skip oobe, retain default programs, retain pinned-to-taskbar applications, as well as have a username already generated? Currently I have to run through oobe and re-apply my personal settings post-image.
Hi all -
I’m fairly new to FOG and Windows Imaging in general. So far, I’ve got a fog server working at my office, deploying 60-150gig images (Yes, the images have to be that big), 30 at a time, in roughly 30 minutes. The laborious part is running through oobe on each machine and setting up my default programs and pinned applications. I work in a very fast paced environment, so I’d love to be able to churn out as many computers per day as possible.
Currently, I’ve created a basic unattend.xml file that just has CopyProfile=true. I’ve looked around for some reading material to help me skip oobe, but haven’t found anything relevant to my use-case. I don’t need any Active Directory or unique user IDs (every machine will have the same guest user ID), so I believe what I’m trying to accomplish is simple, I just need help pointing me in the right direction.
I hope to achieve the following with my image:
- Skip OOBE
- Set Username
- Pin several desired applications to the task bar (i.e. have Chrome pinned to the task bar)
- Set default applications (i.e. Set Chrome as the default web browser)
And my last final thoughts on this. You may want to review these two threads to see if they give you any additional guidance with your task.
@Bromid There may be something else that may help you.
Consider using PDQ Deploy (or FOG Snapins I should probably promote that first, shame on me). With PDQ Deploy you can deploy applications or groups of applications to remote machines, as long as you have a user account that is a local administrator on the target computer. Again snapins will do the same.
PDQ Deploy has a paid for version that is not very expensive and worth the cost, but the free version will work for your task. You just need to script the software installs and execute that from a batch file in PDQ Deploy.
Ah. I install windows 10 Home onto the machine using a Windows USB Installer. I put the machine into audit mode, get all the drivers, programs, and data I need on the machine, run sysprep and upload to FOG. If I need to update the image, I deploy it to a machine (and because it goes through OOBE) I put it back into audit mode and update before syspreping again.
I see! Looks like setupcomplete.cmd may be the key element I was missing.
- I will have to give this a try. If I call setupcomplete.cmd via the unattend.xml, will I invalidate or ruin the licenseof the machine on first boot, post deployment? (Correct me if I’m completely off-base with my question). The machines already have Windows 10 Home Licenses, and retain those licenses post-image currently.
This is a tricky question that I’m afraid I can not answer.
From a technical standpoint if you know where the OEM unattend.xml file is located, its possible for FOG to replace that file using a FOG post install script.
@Bromid How this is typically done, is you create a reference image using one of two ways. Audit mode setup or use Microsoft MDT to create your reference image.
Once your reference image is perfect then you sysprep and capture with FOG.
If you need customization post OOBE that can be done with the setupcomplete.cmd batch script that OOBE will call just before the login window is displayed. Or you can have windows auto login and run a batch script or any number of commands defined in the unattend.xml section.
Target OS == the operating system you are going to deploy. That is all.
A clever solution! I will have to test this out. Thank you.
The machines come with Windows Home Pre-installed, acquiring keys is a non-issue.
I will have to give this a try. If I call setupcomplete.cmd via the unattend.xml, will I invalidate or ruin the licenseof the machine on first boot, post deployment? (Correct me if I’m completely off-base with my question). The machines already have Windows 10 Home Licenses, and retain those licenses post-image currently.
Ah, good to know.
My apologies, I am using 1.3 as I have already imaged Skylake/nvme machines.
Another question based on your responses: To get the features I need, will I need to switch to Pro or Enterprise?
Thank you immensely for your time.
Thank you! Glad to finally post here after 6+ months of FOG usage!
What do you mean by ‘target OS’?
I see what you’re saying about OOBE. Unfortunately for us, we only have only one hardware type and have to get the machines 100% ready before first boot by the user. Our goal is to have the user boot the machine and jump straight to work - hence why we have to do all the OOBE ourselves.
Now that you updated your OP with the OS you want to support there are a few issues.
AFAIK you can not get VLK keys for Home edition of any OS. The OEM license that comes with Win10 Home doesn’t allow for customization of the image. You are only allowed to deploy “unaltered” from OEM media according to the Microsoft EULA. Just be aware that customizing and deploying the home version of the OS, this process may not survive a SAM license audit.
Since the Home editions are not intended for bulk deployment the setupcomplete.cmd will not run for you. But you can still use the on first login part of the unattend.xml script to call your setupcomplete.cmd.
Also since you are using the home version there is no AD concerns to deal with (not good or bad, only a data point).
Since you are using FOG 1.2.0, you may run into issues since Win10 support was not officially added until FOG 1.3.0 was released. You may also run into issues where FOG 1.2.0 doesn’t support the latest hardware, gpt formatted disks, or NVMe (M.2) drives. You might want to consider upgrading your version of fog and to the 1.3.x release (just be aware that fog 1.3.4 has a few annoying bugs, 1.3.5 should be released to address those bugs soon).
@george1421 For pinning and unpinning items from the task bar, this is something that must be run from a user’s profile. There is no way around it.
First look at the accepted answer here: https://community.spiceworks.com/topic/549865-vbs-script-for-pin-and-unpinning-taskbar-icons?page=1#entry-3612735
Now to implement this. Store that script someplace on the computer during reference image creation like c:\windows\setup\scripts
Now what you need to do just before you sysprep the system, create a short cut in the administrators start menu start up folder to call that script. Since you are using the
CopyProfile=truethat shortcut will be copied to each new user that logs into the computer. Cool!!
The only problem is that shortcut will be launched each time the user logs in. So you need to modify the pin to task bar script to kill the short cut in the current user’s start menu. It sounds a little complicated but it really isn’t once you get the script running just like you need it.
@george1421 We do system customizations using both setupcomplete.cmd and the unattend.xml first run. You are right there are some customizations from the reference image that sysprep kills, but we reset them using a few scripts in the setupcomplete.cmd file.
In our case we don’t use the fog client to connect the target computer to AD, or name the system, we update the unattend.xml script on the target computer just after the image has been pushed to the target computer and before windows boots the first time. So everything you want can be done, but mainly during the oobe process.
First of all Welcome to the FOG Forums.
Second you didn’t mention the target OS you are deploying.
Third, just what you are looking to avoid is how its suppose to work and we do this every day. I can push out a hardware agnostic image to any of the (now) 15 hardware platforms we support on our campus.
These systems are fully deployed lite touch, once FOG starts imaging the system we don’t touch it until its done and ready to move to the worksite. Understand this process relies on FOG to push the image in 4-6 minutes to the target computer and then OOBE to do its thing to finish the process. Running through sysprep and then OOBE allows use to have a single OS image for all 15 hardware models.