Deploy Nano Server with a SCCM Task Sequence

3 minute read

One of the cool features that came with Server 2016 is Nano Server. This is a completely stripped down version of Server 2016 that has no UI components and is designed for speed, agility, and lower resource consumption. I decided to try and see if I could deploy this with SCCM. In my investigation, I found out Nano server does not support the SCCM client, so we can not push updates or manage it.

So, I’m stuck and can’t continue right? Well technically we don’t need to install the SCCM client to apply a WIM, so that isn’t a deal breaker! I also found an article about how to deploy Nano server with WDS. SCCM uses WDS, so it should be possible! Based on this article, there are three things I need to do to deploy Nano server: add components to the boot image, prepare the Nano Server WIM, and create a new domain join script!

Boot Image

The first piece of the puzzle is getting our boot image ready. In the WDS article, he runs a script to create a boot image and then modifies some additional files to automatically run a PowerShell script. Since this is a task sequence, we don’t need to do the second part and can just add a step to run the script. So, that leaves us with simply adding components to the boot image. Go to your console and add these components to a Windows 10 1607 x64 boot image:

image

Once that’s done, deploy the boot image to your DPs!

Nano Server WIM

If you look at the Server 2016 ISO, there’s a folder called NanoServer:

image

Inside of it, there’s a file called NanoServer.wim. This is not what you are going to deploy! NanoServer operates much like WinPE boot images where we install components directly into to the WIM. If I want this server to be an IIS server, I need to generate a new Nano Server WIM file with the IIS bits put in. These are all the available packages:

image

For the purposes of this example, I’m going to install the IIS components and Storage components because I want to play around with making a Nano Server DP later. Open an elevated command prompt, and run the following command to generate a new Nano Server WIM that will run in a virtual machine:

Import-Module f:\NanoServer\NanoServerImageGenerator\NanoServerImageGenerator.psd1
$NanoParamHash = @{
    Edition='Standard'
    DeploymentType='Guest'
    MediaPath='F:\'
    BasePath='C:\NanoFiles\Base'
    TargetPath='C:\NanoFiles\NanoServerVM\NanoServerVM.WIM'
    Package='Microsoft-NanoServer-IIS-Package'
}
New-NanoServerImage @NanoParamHash -Clustering -Storage -EnableRemoteManagementPort

Once your WIM is generated, add it to SCCM in Operating System Images:

image

Task Sequence

Last, but not least, we need to build a task sequence to deploy this image! I created a standard task sequence to deploy an image, and then disabled half the steps:

image

First, I modified the Partition Disk 0 – UEFI step to assign the OSDisk variable:

image

Then, I changed the Apply Operating System step to use the OSDisk variable:

image

I didn’t really change the Apply Windows Settings, other than put in my product key:

image

And lastly, I have a new Domain Join step that runs a PowerShell script (download):

image

The linked PowerShell script is a heavily modified version of the script from the WDS install instructions I referenced at the beginning of the article. It takes the positional parameters MachineName, Domain, User, Password, OSDisk. You can see how I specified them in the above screen shot. Download the script, create a package with the script as content, then reference it in your run command line step above.

Lastly, distribute the Task Sequence content, deploy the task sequence, then run it on a VM!

image

image

image

After logging in, we can see it is on the domain!

image

And that’s it, we can now deploy Nano Server! I’ll leave it up to you to decide if you want to deploy a server you cannot manage (yet, hopefully)!

Leave a Comment