Come creare l’immagine VHD per installare Nano Server 2016

L’installazione di un Server 2016 nella versione “Nano Server”, è più complessa rispetto alla classica installazione di Windows Server 2016.

Per questa versione non esiste il file di “setup.exe”, ma occorre creare l’immagine disco “*.vhd“, e successivamente da questa si crea il Server vero e proprio.

L’immagine disco può essere creata per essere implementata su di un Server fisico, virtuale per Hyper-V, virtuale per Vmware.

Per utilizzarlo come server virtuale su tecnologia VMware, occorre convertire il disco dal formato “.vhd” a “.vmdk”. E’ possibile convertirlo utilizzando software adeguati come ad esempio VMware vCenter Converter.

Ci sono due tipologie per creare l’immagine Nano Server:

  • Tramite interfaccia grafica, utilizzando il software “Nano Server Image Builder” scaricabile dal seguente link:

https://www.microsoft.com/en-ca/download/details.aspx?id=54065

  • Utilizzare i comandi PowerShell.

In questo articolo, verrà illustrata la seconda tipologia, cioè come creare l’immagine Nano Server 2016 tramite PowerShell. Per iniziare è necessario scaricare l’immagine ISO di Windows Server 2016 e montarla su un computer che esegue Windows Server o Windows 10 (o altro client Microsoft).

  • Aprire la cartella “NanoServer”, copiare la cartella “NanoServerImageGenerator” in una partizione fissa del computer:
  • In questo esempio viene copiato nella partizione “D:\
  • Aprire “Windows PowerShell” in modalità “administrator”:
  • Posizionarsi all’interno della cartella “D:\NanoServerImageGenerator” (la partizione dove è stata copiata in precedenza la cartella “NanoServerImageGenerator” ):

NOTA: Prima di iniziare con l’esecuzione degli script che creano l’immagine Nano Server, occorre eseguire un comando per impostare il criterio di esecuzione di PowerShell. Questo permette di eseguire gli script senza alcuna restrizione:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

  • digitare la lettera “A” per confermare su tutto:
  • Eseguire il comando PowerShell per importare i moduli necessari all’esecuzione delle operazioni:

Import-Module .\NanoServerImageGenerator.psm1

Il comando con i parametri base per creare l’immagine è il seguente:

New-NanoServerImage –Edition  -DeploymentType -MediaPath -BasePath -TargetPath -ComputerName -Package

Se conosciamo i parametri definitivi di configurazione (ip, subnet, ecc…) del futuro nano Server, si possono inserire all’interno del comando.

Nell’esempio prendiamo in considerazione uno script più complesso, che configura alcune delle opzioni disponibili.

Nota: Per creare un Nano Server per Virtual machine, il parametro “-DeploymentType” deve essere seguito dal comando “Guest” (-DeploymentType Guest). Se invece il risultato finale deve essere un nano Server da implementare su Server fisico, deve essere impostato con il parametro “Host” (-DeploymentType Host) e deve esssere presente il comando “-OEMDrivers”.

Il pacchetto “OEMDrivers” contiene il set di drivers base, principalmente per le Network e Storage adapters.

Es. script per server fisico:

New-NanoServerImage -Edition Datacenter -DeploymentType Host -MediaPath E:\ -TargetPath D:\NanoServer\NanoSRV.vhd -ComputerName NanoSRV -OEMDrivers -Compute -Storage -Clustering -EnableRemoteManagementPort -InterfaceNameOrIndex Ethernet -Ipv4Address 10.10.1.30 -Ipv4SubnetMask 255.255.255.0 -Ipv4Gateway 10.10.1.1 -Ipv4Dns 10.10.1.10

Es. script per virtual machine:

New-NanoServerImage -Edition Datacenter -DeploymentType Guest -MediaPath E:\ -TargetPath D:\NanoServer\NanoSRV.vhd -ComputerName NanoSRV -Compute -Storage -Clustering -EnableRemoteManagementPort -InterfaceNameOrIndex Ethernet -Ipv4Address 10.10.1.30 -Ipv4SubnetMask 255.255.255.0 -Ipv4Gateway 10.10.1.1 -Ipv4Dns 10.10.1.10 Procediamo con lo script per creare un’immagine da utilizzare per una Virtual machine:

  • Inserire la password di “administrator” locale e premere invio per proseguire:

Nota: inserendo all’interno del comando, il parametro “-AdministratorPassword” con la relativa password a seguito (-AdministratorPassword pippo123), non viene più richiesta durante l’esecuzione.

Personalmente preferisco che mi venga chiesto l’inserimento durante l’esecuzione, per non doverla inserire in chiaro (inserita durante l’esecuzione dello script, non è visibile).

Seguiranno alcune videate dei vari processi:

Processo concluso:

Aprendo il percorso della cartella “D:\NanoServer\NanoSRV.vhd”, è possibile visualizzare il risultato finale:

———————————————————————————————————————————————–

Opzioni disponibili:

https://docs.microsoft.com/en-us/powershell/module/nanoserverimagegenerator/new-nanoserverimage?view=win10-ps

New-NanoServerImage [-DeploymentType] <String> {Host | Guest}

[-Edition] <String> {Standard | Datacenter}

-TargetPath <String>

-AdministratorPassword <SecureString>

[-MediaPath <String>]

[-BasePath <String>]

[-MaxSize <UInt64>]

[-Storage] [-Compute]

[-Defender]

[-Clustering]

[-OEMDrivers]

[-Containers]

[-SetupUI <String[]>]

[-Package <String[]>]

[-ServicingPackagePath <String[]>]

[-ComputerName <String>]

[-UnattendPath <String>]

[-DomainName <String>]

[-DomainBlobPath <String>]

[-ReuseDomainNode]

[-DriverPath <String[]>]

[-InterfaceNameOrIndex <String>]

[-Ipv6Address <String>]

[-Ipv6Dns <String[]>]

[-Ipv4Address <String>]

[-Ipv4SubnetMask <String>]

[-Ipv4Gateway <String>]

[-Ipv4Dns <String[]>]

[-DebugMethod <String> {Serial | Net | 1394 | USB}]

[-DebugBaudRate <UInt32>]

[-DebugBusParams <String>]

[-DebugChannel <UInt16>]

[-DebugCOMPort <Byte>]

[-DebugKey <String>]

[-DebugPort <UInt16>]

[-DebugRemoteIP <String>]

[-DebugTargetName <String>]

[-EnableEMS]

[-EMSPort <Byte>]

[-EMSBaudRate <UInt32>]

[-EnableRemoteManagementPort]

[-CopyPath <Object>]

[-SetupCompleteCommand <String[]>]

[-Development] [-LogPath <String>]

[-OfflineScriptPath <String[]>]

[-OfflineScriptArgument <Hashtable>]

[-Internal <String>] [<CommonParameters>]


Alessandro Romeo