With System Center 2016 – Virtual Machine Manager (VMM), you can start managing physical hosts and virtual machines running Nano server instance.
However, there are some known issues when joining a Nano Server-based virtual machine (VM) to a domain. If you try to join Nano VM to a domain by specifying customization details in a VM template, the domain information is ignored by VMM. The VM is deployed, but does NOT join the domain. This has been case since SCVMM 2016 was GA in October 2016.
Your feedback is very important to the VMM team. With the release of SCVMM 2016 Update Rollup 2 today, Microsoft unlocked this issue. You can now domain joined Nano Server deployment through VM Template.
For the complete list of improvements and issues that are fixed in SCVMM 2016 Update Rollup 2, please check here. It’s a very long list and a lots of improvements.
In the remainder of this blog, I will show you how to deploy a Nano Server VM and join it to the domain using SCVMM 2016 Update Rollup 2.
After you install and verify Update Rollup 2 for VMM 2016, you can move forward.
Create a Nano Server Virtual Hard Disk
To get started with the deployment of a Nano Server-based virtual machines in VMM, you need to create first a Nano server VHD(X) from the Windows Server 2016 media.
If you are deploying Nano Server to a bare-metal machine, or you want to leverage Hyper-V nested virtualization (Nano VM host), then make sure to include the following VMM packages:
In this example, we will create a Nano Server VHDX including the DNS role.
Mount the Windows Server 2016 ISO on your machine and copy NanoServer folder locally (i.e. C:\NanoServer).
Step 1. Start Windows PowerShell as an administrator, and navigate to the folder where you’ve copied Nano Server folder. Import the NanoServerImageGenerator module with the following command:
Import-Module NanoServerImageGenerator.psd1 -Verbose
Step 2. Create a VHDX by running the following command. You’ll be prompted for an administrator password for the new VHDX.
# Enter Administrator Password
$Password = Read-Host -Prompt "Please specify local Administrator password" -AsSecureString
# Servicing Update Packages
$ServicingPackage = @(
New-NanoServerImage -BasePath C:\NanoServer\ `
-TargetPath C:\NanoServer\NANO-DNS01.vhdx `
-DeploymentType Guest `
-Edition Standard `
-Package Microsoft-NanoServer-DNS-Package `
-ComputerName "NANO-DNS01" `
-AdministratorPassword $Password `
-ServicingPackagePath $ServicingPackage `
-SetupCompleteCommand ('tzutil.exe /s "W. Europe Standard Time"')
This example creates a VHDX from C:\NanoServer folder that we copied earlier; it will place the VHDX under the same folder named “NANO-DNS01.vhdx”. The computer name will be NANO-DNS01 and the virtual machine drivers (integration services) will be installed as part of the image. We added the latest Servicing Stack and Cumulative Updates by using the “ServicingPackagePath” parameter. Then we added the DNS package, and lastly we enabled the Remote Management.
As a side note, by adding the DNS package to the image isn’t enough. You still need to enable the DNS feature by using the following command after the deployment:
Enable-WindowsOptionalFeature -Online -FeatureName DNS-Server-Full-Role
If you want a Generation 1 virtual machine, generate a VHD image by specifying a .vhd extension for -TargetPath. In this example, we generated a VHDX image by specifying a .vhdx extension for –TargetPath since we will deploy a Generation 2 virtual machine.
Create a Nano Server VM Template in VMM
In this step, you need to copy the virtual hard disk created earlier to the VMM library location.
After you copy the VHDX image, open SCVMM console, navigate to the Library workspace and then refresh the library.
Select VM Templates and then click Create VM Template from the ribbon.
In the Create VM Template Wizard, browse and select Nano Server virtual hard disk created in the previous step.
Click Next. Give a name for the VM Template and specify Generation 2 as shown in the following screenshot.
Click Next. In Configure Hardware window, specify the desired hardware resources including the VM network. Please note that as of today, Nano Server cannot obtain an IP address from a Static IP Pool in VMM. So it’s important to have a DHCP Server ready before you start the deployment. Hopefully this scenario will be addressed in the near future. Please vote on user voice here!
Click Next. In Configure Operating System, provide the additional information as needed. The most important setting is, the Domain/Workgroup.
As shown in the next screenshot, we have a new setting called Nano Server-based VM deployment. If you are doing a Nano Server-based VM deployment, ensure that you select the below checkbox for the Nano VM to join the domain. Of course, this is applicable for Windows Server 2016 and later.
Click Next to continue through the Wizard and then click Create.
Deploy a Nano Server VM Template in VMM
In the final step, we will create a new virtual machine and use the VM template created in the previous step.
Continue through the Wizard and then click Create virtual machine.
When you click Create virtual machine, VMM will create an offline domain join object (BLOB) for Nano VM and then apply that object to Nano VHD(X) in offline mode. When Nano VM boot up for the first time, it picks the offline setting and join the domain automatically.
Count until 40… and here you go we have a new Nano Server based-VM domain joined.
NOTE: The steps above described the deployment of Nano based-VM domain joined using VM Templates. However, there is still a known issue when deploying Nano Server-based VM using Service Templates. As of this writing, Nano domain join will fail using Service Templates. Microsoft is actively working on this issue and hopefully it will be addressed in the next update.
Thanks for reading!