Hi,
As I searched the web how to automatically deploy NANO server and join it to Active Directory, I could only find incomplete solutions.
I saw many things with manual copy of the blob generated with djoin.exe …
I went deep dive into « :\NanoServer\NanoServerImageGenerator\NanoServerImageGenerator.psm1 » and discovered everything is in the box.
For that I’m working with the last version of Windows 2016: Win_Svr_STD_Core_and_DataCtr_Core_2016_64Bit_English_-3_MLF_X21-30350.ISO
You can manually create your own unattend.xml thanks to WAIK10, but no need for that; As I said, everything is in the module NanoServerImageGenerator.psm1
Also, as I am quite lazy and want the simplest code, this is what I wrote and which generates my disk.vhdx
<# .NOTES =========================================================================== Created with: SAPIEN Technologies, Inc., PowerShell Studio 2017 v5.4.136 Created on: 21/03/2017 08:11 Created by: Jean-Yves Moschetto jeanyves.moschetto@yoursystems.eu Organization: CARIB INFRA - YOURSYSTEMS Filename: =========================================================================== - Copy to C:\EXPLOIT\NanoServer - BasePath doesn't support network drive or UNC path - To be executed from a member Windows 10/2016 computer, as 'Domain admin' for account provisioning - Must have a DHCP with DNS to join domain #> $Configurationdata = @{ Global = @{ BasePath = 'C:\EXPLOIT\NanoServer'; MediaPath = 'D:\'; TargetPath = '\\10.10.10.2\c$\VM\VHD'; Domain = 'dom2016.local'; } Servers = @( @{ ComputerName = 'Nano1'; Edition = 'Datacenter'; DeploymentType = 'Guest' }, @{ ComputerName = 'Nano2'; Edition = 'Standard'; DeploymentType = 'Guest' } ) } Import-Module "$($Configurationdata.Global.BasePath)\NanoServerImageGenerator\NanoServerImageGenerator.psm1" if ($Credential -eq $null) { $Credential = Get-Credential -Message 'Enter administrator password' -UserName Administrator } ForEach ($Server in $Configurationdata.Servers) { djoin.exe /provision /domain $($Configurationdata.Global.Domain) /machine $($Server.ComputerName) /savefile "$($Configurationdata.Global.BasePath)\$($Server.ComputerName).blob" /reuse New-NanoServerImage -DeploymentType $Server.DeploymentType ` -Edition $Server.Edition ` -MediaPath $Configurationdata.Global.MediaPath ` -BasePath $Configurationdata.Global.BasePath ` -TargetPath "$($Configurationdata.Global.TargetPath)\$($Server.ComputerName).vhdx" ` -AdministratorPassword $Credential.Password ` -DomainBlobPath "$($Configurationdata.Global.BasePath)\$($Server.ComputerName).blob" ` -EnableRemoteManagementPort:$true }
Just create your virtual machine manually or from script, attach the just created vhdx disk and boot.
Just create your virtual machine manually or from script, attach the just created vhdx disk and boot.
It just takes 3 seconds to boot and here it is … :