Tag Archives: Hyper-V

Create a SET Team in Server 2016 – HowTo…

SET (Switch Embedded Teaming) is a new technology in Windows Server 2016 and the successor to the “standard” teaming technology in Server 2012R2 (LBFO Team) – read more: https://technet.microsoft.com/en-us/library/mt403349.aspx

HINT: only available if you have added the Hyper-V role in Windows, because otherwise no PS-CMDLets are available to configure…

Create a vSwitch

First you have to create a new virtual switch and add the physical NICs:

…a vswitch with the name “TeamedvSwitch” is created – the physical adapters will be connected to this vswitch and a vNIC with the default name “vEthernet (TeamedvSwitch)” are created:

HINT: like in 2012R teaming, it is possible to create a SET team with a single physical NIC and add additional NICs later – so my recommendation is to create always a SET team even if you have only a single NIC.

Rename vNIC(s)

We want to rename the default vNIC for better administration:

HINT: you see that i have two physical NICs from different vendors – it work´s in my vLab but for production environment it is not supported to have a SET team with NICs from different vendors, with different firmware or drivers…

Add vNIC(s)

…and we want to add another vNIC for LiveMigration traffic:

…and additional vNICs for CSV/ClusterHB and Storage Traffic:

Show all “Management” adapters in powershell:

Set VLANid on vNIC(s)

I have different VLANs for the traffic:

VLANid Description
0(native/untagged) Management/RDP/PXE/DHCP….
400 LiveMigration
300 SMB-Storage Traffic
250 ClusterHB

HINT: many switch vendors won´t pass traffic class information on untagged networks. Best practice if using RDMA, DCB and PFC is that the “untagged” network are on VLAN 0 (tagged) – i.e. “Set-VMNetworkAdapterVlan -VMNetworkadapter $NIC -Access -VlanId 0” for the management interface. This set all vNICs in a VLAN, class information can be inserted into the VLAN header of IP packets and the physical switch pass this type of traffic.

Enable JumboFrames

Dont forget to enable Jumbo Frames, this can significant speed up your network.

To enable Jumbo Frames you have to configure it on the switch side with the appropriate tools WebGUI,CLI,.. – i always use 9KB – on most NICs it exist a value of 9014 bits, but this is depending on your NIC vendor and driver. Check the Advanced Properties on the NIC in windows – if you dont see settings for Jumbo Frames and/or 9KB (sometimes if you using original windows drivers for nic) update to the latest vendor driver.

The following is a example of a Realtek NIC with the shipped windows driver in server 2016:

(the max value in JumboPacket is 4k and fixed size, no bigger values available…)

AFTER updating the driver to realtek driver version 10.2.703.2015:

(now 9KB is available in advanced properties…)

Set the value on all physical NICs:

(regarding 9014 bits: i prefer this little smaller value than in the switch port setting (9216) but realtek does not allow 9014 like intel and other vendors, you have to use 9216 if you have realtek nic)

HINT: in Windows 2012R2 the vNICs inherit the settings from the LBFO-Team, so if you set all physical NICs to JumboFrame with i.e. 9014 bits – all the vNICs have automatically 9014 bits in their settings – in Windows 2016 with SET teaming this is different (!) – you have to set explicit ALL physical AND vNICs to JumboFrame.

Set all vNICs to Jumbo Frames:

 

 

Now we have divided the traffic into several VLANs, but every kind of traffic using all of the available bandwith and have no priority of each other – we have two options to deal with that:

  • QoS
  • PFC and DCB

 

 

 

Installing Highly Available SystemCenter VMM 2016 – HowTo…

Prerequisites:

if you want to install a highly available VMM you need two VM´s (to create a VMM cluster) and a extra HA SQL Server (ideally two SQL 2016 core Nodes with AlwaysOn – for installing this SQL nodes see http://mscloudgurublog.azurewebsites.net/2016/10/28/installing-sql-server-2016-core-on-windows-server-2016-core/

VM(s):
  • Create two VMs with a OS vhdx (optional one additional Data drive if you want to split OS and VMM in two different drives), 2 vCPUs and at minimum 4096 MB Memory (if you want to use Dynamic RAM, set Startup value to 4096MBs or more and Minimum RAM to 2048 or more, otherwise setup check will fail…) – see SystemCenter requirements: https://technet.microsoft.com/en-us/system-center-docs/system-requirements/minimum-hardware-recommendations
  • Create a cluster with this two VMs, no cluster disks necessary, don’t forget to create a witness (my preferred FileShare or Cloud Witness)

SQL:
  • create a AlwaysOn Listener on your SQL cluster (you can deploy VMM in a “Common” Instance with other databases or you prefer a dedicated instance for VMM – collation should be: SQL_Latin1_General_CP1_CI_AS
Software:

  • Install ADK on both VMM nodes with the following options:
    • DeploymentTools
    • Windows Preinstallation Environment

…copy downloaded ADKSetup Files to both VMM nodes and install with GUI or unattended:

…after a few minutes check c:\temp\install.txt – the last entry should be “…Exit code 0…”:

  • Install the SQL tools in GUI mode or unattended:

  • do this on both vm nodes and restart the servers
Accounts:
Login Purpose Permission
DOMAIN\_svc_vmmservice SCVMM Service Account Local admin rights on VMM nodes
DOMAIN\_svc_vmmrunas Service Account for manageging Hyper-V Hosts Local admin rights on Hyper-V servers/nodes
(optional) DOMAIN\_svc_vmm2scom SCVMM to SCOM connector account SCOM Admin and SCVMM Admin role
(optional) DOMAIN\_svc_vmmtemplate Account used in templates to join Domain and run scripts while deployment you can use delegate control in AD for this account – Computer Objects/Reset Password/Validated write to DNS host name/Validated write to service principal name/Read/Write Account Restrictions (This object and all descendant objects – Create/Delete Computer Objects)
Groups:
Name Members Scope Permission
gg_VMMAdmins your account/_svc_vmmservice/_svc_vmmrunas Global -
lg_VMMAdmins gg_VMMAdmins Local Put this group in local admins group on VMM nodes
AD container:

if you install VMM in HA mode you must create a container in AD to allow VMM to store their key´s. See https://technet.microsoft.com/en-us/library/gg697604(v=sc.12).aspx

open ADSIEdit.msc and connect to the domain partition of the active directory domain:

…double click on “Default namin context…” and right click on domain context:

..give it a name (ie. VMMDKM – “Virtual Machine Manager Distributed Key Management”)

…refresh the console:

…click on domain -> your container -> and check your if your container is created successfully:

 

…close ADSIEdit and open “Active Directory Users and Computers” – click View -> Advanced Features:

…open Properties of your container:

…add VMM service account with R/W/Create child permissions:

…click Advanced and chance permissions to all descendant objects:

FileShare:

In a VMM HA install the FileShare for Library must be created outside of VMM servers – you have to create a fileshare on a MS fileserver or fileservercluster (NAS or other CIFS components are not possible because VMM installing his own VMM agent on the fileserver for management purposes…)

Install:

you can choose between nonGUI and GUI VMM setup – even on server core edition:

Server core install:

change to your VMM setup path and edit the file VMserver.ini (ie: C:\VMMSetup\amd64\Setup\VMserver.ini)

call the setup with the following parameter:

check the VMMLog in C:\ProgramData\VMMLogs

Installation in GUI mode:

..start setup – choose install, click VMM server and next:

Server name -> Name of you AlwaysOn Listener

Port -> Listener Port

Instance name -> name of SQL instance

use your vmm-service account -> see “Accounts” above and the Distinguished Name of the container you created in AD before (see container above)

HINT: ..normally everything should ok – if you get an error like me (see text in screenshot) regarding the SCP in AD – maybe you have moved your Nodes in AD in another OU and forget to give the ClusterObject the permission to create Computer Objects within this OU! – see: https://technet.microsoft.com/en-us/library/dn466519(v=ws.11).aspx or see: http://www.systemcenter.ninja/2014/01/creating-service-connection-point-scp.html

..in my case i manually create the computer object (same OU as FC object) and give the failoverclusterobject Full-rights on this new object – after that i run the configurescptool.exe command (see text above) again and voila – in Cluster Manager the Role can be started with success…

On second node:

start setup (vmmsetup recognize that it runs in a cluster and that a “primary” vmm node exist):

…if you click on VMM management server in next screen you will get the following message:

…enter registration informations again:

…settings for database are greyed-out because setup reads this info from primary installed node:

…reeenter password for vmm-service:

accept all other with next and click install:

…after a while setup should finished with success:

Last step in HA install is to make the VMM DB highly-available – we installed it with the AlwaysOn Listener but the DB itself must be switched to HA with the SQL AlwaysOn Wizard – open the SQL Studio and connect to your AO Database:

…standard SQL setup for join a single DB to AO group – change recovery mode/make backup/add db to ao group:

…right click on AOgroup and select “Add Database…”:

HINT: in SQL Alvailability group dont forget to keep your SQL users on the database in sync (!) – see: http://mscloudgurublog.azurewebsites.net/2016/10/28/installing-sql-server-2016-core-on-windows-server-2016-core/ since every works perfekt until the first failover of the DB – then VMM service failed to start, because the (ie. _svc_vmmservice) user does not exist on the failover target server.

FINISH: now you have a fully highly available SCVMM installation – test it with failover of DB (nothing should happen) – and failover of VMM (an open VMM console should simple reconnecting after a few seconds)

Lability – Add Server 2016 RTM as Custom Media

Download:

Lability can download the ISO file (jump directly to “Register-Media” section) for you or if you want to download manually – you find it on the MS Eval Site:

https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016?i=1

After downloading the ISO file, you need the exact image names within the install.wim of iso file – you can get this with the following powershell cmds:

You get a output like this:

Imagelndex : windows server 2016 SERVERSTANDARXORE ImageName Imageoescription • . windows server 2016 SERVERSTANDARXORE ImageSi ze . 8.840. 650.521 bytes Imagelndex ImageName Imageoescription : ImageSi ze Imagelndex ImageName Imageoescription : ImageSi ze Imagelndex ImageName Imageoescription : ImageSi ze . Wi ndows Server Wi ndows Server : 14.858. 983.050 . Wi ndows Server Wi ndows Server 2016 SERVERSTANDARD 2016 SERVERSTANDARD byt es 2016 SERVERDATACENTERCORE 2016 SERVERDATACENTERCORE . 8.905. 611.811 bytes . Wi ndows Server Wi ndows Server : 14.857. 373.611 2016 SERVERDATACENTER 2016 SERVERDATACENTER byt es

…you need the values in the Field “ImageName” – Dismount the Image with:

 

Register Media:

Now you can register the new ISO and ImageNames with:

 

Do the same with the other three imagenames:

Change your Lability Config file:

Change the media name in your lability config file (.psd1) i.e:

…your vLab is now ready to deploy with the new OS..

Solving Win10 (Build 1607) Anniversary Update – Hyper-V Gen2 VM 2016TP5 – boot error

You have Windows 10 with Anniversary Update (Build 1607) – Hyper-V enabled – created a VM with 2016TP5 and your screen looks like this?

<pic>

There are some information on the net about solving this boot problem but the tricky part on that is – you must do this STEP by STEP (to avoid additional errors on boot…)

STEP1:

  • Stop VM
  • Change your Secure Boot Options to “Microsoft UEFI Certificate Authority” (DO NOT Disable Secure Boot, because it is useless here and you end up in the same error…)
  • Start VM
  • Error again – this is ok here…

STEP2:

  • Stop VM
  • Now you can DISABLE Secure Boot Option (if you try this without STEP1 – you VM does not boot…)

Settings for DCI on BIG Ha rdwa re r Add Hardware Firmvvare Soot from File Security Secure Boot disabled Memory 4096 Ma c] Processor 2 Virtual processors SCSI controller Hard Drive OCI 635AID3g-0D3E411-E... Ne M' Ork Adapter Internal vSnitch Management Security Secure Soot use Secure Soot to help prevent unauthorized code from running at boot tme (recommended). Enable Secure Soot Template: Microsoft IJEFI Certficate Authority Encryption Support Enable Trusted Platform Module A Trusted Platform Module (TM) is a special purpose microprocessor "'hich provides cryptographic services to a compute platform. Encrypt state and virtual machine migraton traffc

  • Start VM

..after changing to UEFI and disable UEFI secure boot you can start your VM with 2016TP5 in normal way…

Create your Virtual Lab Environment with Lability – HowTo…

For newbies it could be a little bit complicated to start with lability, but this tool is great and you can save a lot of time if you use it – thanks to Iain for his great work!

I wrote this howto for starting with this tool from scratch and to avoid obstackles and errors – if you find mistakes or other useful info, to find it worth to add, pls leave a comment – any feedback appreciated.

Prerequisites

I use a “lab” notebook (16GB Ram and SSD drive) with windows 10 enterprise for this tutorial (tested also on a server with 2016TP5):

Start a Powershell CMD Line with Admin rights…

Check if you have PowerShell Gallery registered:

..if you get a “WARNING: Unable to find module repositories.” – you have to register PSGallery first:

If not done before, we should change our trustedpolicy for installing scripts from PSGallery source – to do so run the following command (not necessary if you start above cmdlet register-psrepository…):

…checking for nuget – if not installed, this CMDLet let you install it:


(if you have not installed the NuGet provider – the command ask you to install…)

Administrator: Windows PowerSheII Sin ows PowerS e opyright (C) 2015 Mi crosoft Corporation. PS find-module NuGet provider is required to continue PowerSheI IGet requires NuGet provider version rights reserved. '2. 8. 5. 201' or never to interact with NuGet-based repositories. The NuGet provider must be available in 'C: \ Program Files \ PackageNanagement\ProviderAssembIies' or You can also install the NuGet provider by running 'Install-packageprovider -Name NuGet -MinimumVersion 2. 8.5. 201 -Force'. Do you want PowerSheIIGet to install and import the NuGet provider now? [Y] Yes [N] No [S] Suspend C?] Help (default is "Y") :

Let´s install and answer the question with Y

…after installation you will see a long list of all Modules in PSGallery – you can specify the search with:

fi nd-modul e ers•on .10.0 2.5.o.o I em32> Name Labi I ity xEXOLlserAvai abi ity AddCustomAvai abi ityD8 Instal -Module abi lity2 Type Modu e Modu e Modu e Name Labi I i ty Repos i tory PSGaI ery PSGaI ery PSGaI ery Description The Lability module contains cmdlets for provisioning Hyper-V test lab and development . xEXOLlserAvaiIabiIity can help you to get user availability from Office 365 Exchange On I... Powershell Module To Add Database(s) to an Existing Availability Group

Installation

Install Lability Module:

You can check all available commands from this module with:

PS C: WINCOW system32> Get-Comman e La onunandType Name Function Checkpoi nt-Lab Function Export -LabHostConfi i on Function Get-LabHostConfigurat ion Function Get-LabHostDefau It Function Get-LabHostDefau I ts Function Get-LabImage Function Get - La*' edia Function Get - LabW Function Get -LabWDefau t Function Get-LabWDefauIts Function mport-LabHostConfigurat ion Function Invoke-LabResour ceDown Ioad Function New-LabImage Function New- LabW Function Regi ster -LabNedia Function Ranove-LabConfiguration Function Remove-LabW Function Reset-Lab Function Reset -LabHostDefauIt Function Reset -LabHostDefau I ts Function Reset -LabNedia Function Reset -LabW Function Reset -LabWDefauIt Function Reset -LabWDefauIts Function Restore-Lab Function Set -LabHostDefau It Function Set -LabHostDefau I ts Function Set -LabWDefau t Function Set -LabWDefau I ts Function Start-Lab Function Start -LabConfiguration Function Start -LabHostConfiguration Function Stop-Lab Function Test -LabConfiguration Function Test -LabHostConfiguration Function Test -Lablmage Function Test -LabNedia Function Test -LabResource Function Test -LabW Function Unr egi ster - LaHMedia Ity Versi on 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o o. 10.0 0.10.o 0.10.o Source Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity Labi lity

Download Sources (optional)

After sucessful install you can download sources (optional – lability do this automatically if you start your labconfig) and get your images ready:

Check all available media files:

PS Get-LaI*edia I ft Id,Description Descri ption 2016TP5_x64_ 2016TP5_x64_ 2016TP5_x64_ 2016TP5_x64_ 2016TP5_x64_ 2016TP4_x64_ 2016TP4_x64_ 2016TP4_x64_ 2016TP4_x64_ 2016TP4_x64_ Standard_EN St an dard_Cor e_EN Datacenter _ EN Dat _Cor e_EN NAW_EN Standard_EN St an dard_Cor e_EN Datacenter _ EN Dat _Cor e_EN NAW_EN Wi ndows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Wi n dows Server Server Server Server Server Server Server Server Server Server Server Server Server Server Server Server Server Server 2016 2016 2016 2016 2016 2016 2016 2016 2016 2016 2012 2012 2012 2012 2012 2012 2012 2012 Technical Technical Technical Technical Technical Technical Technical Technical Technical Technical Pr evi Pr evi Pr evi Pr evi Pr evi Pr evi Pr evi Pr evi Pr evi Pr evi 4 4 4 4 4 Standard 64bit English Standard Core 64bit English Datacenter 64bit English Datacenter Core 64bit English Nano 64bit English Standard 64bit English Standard Core 64bit English Datacenter 64bit English Datacenter Core 64bit English Nano 64bit English R2 Standard 64bit R2 Standard 64bit English Evaluation English Evaluation with 5 2 012 an dard_Cor e_ EN_V5 _ Eval 2 012 acent er _Cor 2 012 acent er _Cor _ Eva - R2 Standard Core 64bit English Evaluation R2 Standard Core 64bit English Evaluation with 5 R2 Datacenter 64bit English Evaluation R2 Datacenter 64bit English Evaluation with MF 5 R2 Datacenter Core 64bit English Evaluation R2 Datacenter Core 64bit English Evaluation with 5 IN81_x64_ IN81_x64_ IN81_x86_ IN81_x86_ 1 NIO_x64_ INIO_x86_ 1 NIO_x64_ INIO_x86_ Enter pri Enter pri Enter pr i s Ent er pr i s 8.1 64bit Enterprise English Evaluation 8.1 64bit Enterprise English Evaluation with 5 8.1 32bit Enterprise English Evaluation 8.1 32bit Enterprise English Evaluation with 5 10 64bit Enterprise 1607 English Evaluation 10 32bit Enterprise 1607 English Evaluation 10 64bit Enterprise LTS8 English Evaluation 10 32bit Enterprise LTS8 English Evaluation

Change directories (optional)

Let´s look at the Host Defaults (ie. Download Dir´s,….):

-LabHostDefauIt ps Get onfigurationpath Di ffer enci ngVhdPath HotfixPath Isopath odu eCach epath : C: \ ProgramData\Labi lity\ModuIes ParentVhdPath ResourcePath Resour ceShar eName . Resources DisableLocaIFiIeCaching : False Enabl Cal StackLoggi ng . False

I want to change some of the paths to my (slower but bigger) D Drive:

(it is not necessary to create the directories – Lability will do that later for you…)

..time to create all the dir´s:

PS C Start-LabHostConfiguration -Verbose ' C : ndows\syst em32\Wi ndows Power Sh el I XVI. O\Modu I es\PSDes i r edStat eConfi gur at i on \ Di sabl e- Ds cDebug. cdxml ' ' C : n dows\syst em32\Wi n dowsPower Shel I XVI. ONM odu I es\PSDes i r edStateConfi gur at ion \ Enabl e- Ds cDebug. cdxml ' ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : Started Lab host configuration. Importing DSC Loadi ng Loadi ng Loadi ng Loadi ng Loadi ng Loadi ng Loadi ng Loadi ng Loadi ng Loadi ng Loadi ng modu I e modu I e modu I e modu I e modu I e modu I e modu I e modu I e modu I e modu I e modu I e from from from from from from from from from from from path path path path path path path path path path path Test ing node Resource ' eResource' . ' C : ndows\syst em32\Wi n Power Sh el I XVI. ONM odu I es\PSDes i r edStat eConfi gur at i on\PSDes i r edStat eConfi gur at i on . psml ' ' C : ndows\syst em32\Wi ndows Power Sh el I XVI. O\Modu I es\PSDes i r edStat eConfi gur at i on\Get - DSCConfi gur at i on . cdxml ' ' C : n dows\syst em32\Wi n dowsPower Shel I XVI. ONM odu I es\PSDes i r edStat gur at ion\Get - DSCLoca I Confi gur at i onManager . cdxml ' ' C : ndows\syst em32\Wi ndowsPower Sh el I XVI. O\Modu I es\PSDes i r edStat gur at i on \ Restor e- DSCConfi gur at i on . cdxml ' ' C : n dows\syst em32\Wi n dowsPower Sh el I XVI. ONM odu I es\PSDes i r edStat eConfi gur at i on\Get - Ds cConfi gur at i on Statu s . cdxml ' ' C : ndows\syst em32\Wi ndows Power Sh el I XVI. O\Modu I es\PSDes i r edStat eConfi gur at i on \ Stop- Ds cConfi gur at i on . cdxml ' ' C : n dows\syst em32\Wi n dowsPower Sh el I XVI. ONM odu I es\PSDes i r edStat gur at i on \ Remove- Ds cConfi gur at i on Document . cdxml ' ' C : ndows\syst em32\Wi ndowsPower Sh el I XVI. O\Modu I es\PSDes i r edStat eConfi gur at i I as s Resour ces\Wi ndowsPackageCab\Wi ndowsPackageCab. psdl ' ' C : ndows\syst em32\Wi n dowsPower Sh el I XVI. O\Modu I es\PSDes i r edStat eConfi gur at i I as s Resour ces\Wi ndowsPackageCab\Wi ndowsPackageCab. psml ' Hyper-V Role' configuration. Skipping command ' Set-WindowsFeatureTargetResource' . Test ing node 'Hyper-V Tools' configuration. Skipping command ' Set-WindowsFeatureTargetResource' . Import ing bundled DSC Resource 'xPendi ngReboot ' Test ing node 'Pending reboot' configuration. Ski pping command ' Set-Pendi ngRebootTargetResource' . Finished Lab host configuration.

PS Test-LabHostConfiguration -Verbose ER80SE : ER80SE : ER80SE : ER80SE : ER80SE : ER80SE : ER80SE : ER80SE : ER80SE : ER80SE : ER80SE : ER80SE : rue PS C Started Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Lab host configuration test. directory exists. directory exists. directory exists. directory exists. directory 'C: \ ProgramData\Labi lity\ModuIes' exists. directory exists. directory exists. node ' Hyper-V Role' configuration. node ' Hyper-V Tools' configuration. node ' Pending reboot' configuration. Finished Lab host configuration test.

..while Start-LabConfiguration (later) can download all necessary medias automatically, you can download it in advance to be prepared:

(for a list of MediaId´s see above – Download Sources…)

Administrator: Windows PowerSheII Downloading 'http://care. com/d1/down10ad/8/9/2/89284838-8A51-49C8-90F8-59COA58DOE70/14300.1000.160324-1723. 53 261 817 of 5 199 917 056 bytes (1 96).

You need two configuration files for Lability to work – for example copy NanoExample.ps1 and NanoExample.psd1 to D:\Lability\Configurations

Open NanoExample.ps1 with your preferred TextEditor ie. Notepad++ and see what Modules are used – in this case xNetworking and xPSDesiredStateConfiguration…

— Confi guration NanoExampIe { Requires the following DSC resources: xNetworking (v2.S.O.O or later) xPSDesiredStateConfiguration (vs . param ( ) Import —Ds cRe source —Module node SAIINodes . Vmere ( { $ true) ) . NodeName Local Confi onManager { O or later) httzs : / / Chub . ht : / / Chub . com/PowerSheII/xPSDesiredStateConfiauration RebootNodeIfNeeded I owModuI eCve rwri t e — S true;

..if you have not done before you should install these modules – type:

In our example we want to use Server2016TP5 – so open NanoExample.psd1 and edit the following line:

Now set the defaults for your VMs: (Memory,Regional Settings,…)

Create MOF Files

Copy nanoexample.ps1 and psd1 to configurations dir…(enter exactly as below)

Administratar: Windows PowerSheII PS Ity\Con 1 guratlons> Ity\Con 1 guratl ons\NanoExamp e. psl PS D: \ NanoExampIe -Outputpath D: \ Directory: D: \ Labi lity\Configurations -Confi gurati onData . \ NanoExampI e. psdl LastWriteTime 17.09. 2016 17.09. 2016 14:10 14:10 Length Name 6766 MAW1.mof 1174 NAWI. meta. mof PS

(..if you have any typo in there – no .mof files generated and no error message are displayed (thank´s Iain for pointing me in the right direction.. :-))

Start Lab

It´s time to start our lab:

…add your credentials:

Windows PowerSheII credential request. Enter the virtual machines' local administrator password. LocalAdministrator Password:

..and Lability is creating our environment:

Administrator: Windows PowerSheII PS D: La 1 ty Con 1 guratnons:• . D: La 1 ty Con 1 guratlons NanoExamp e. PSI PS D: \ NanoExampIe -Outputpath D: \ Confi guring node ' NAPOI' Processing [000000000000000000000000000 Add-WindowsPackage: cab Running [14:51. [14:51: [14:51: [14:51: [14:51: [14:51: [14:51: [14:51: [14:51: [14:51. : 51 :04) • 51 :04) -ConfigurationData D: \ psdl Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 17. 09. 2016 14:50 1174 VAN01.meta. PS D: \ Labi Start-LabConfiguration -ConfigurationData . \NanoExampIe. psdl -Verbose ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ARNING: ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : ERBOSE : [14 [14:51 [14:51 :03) [14:51 [14:51 :03) [14:51 [14:51 :03) [14:51 [14:51 :03) [14:51 [14:51 :03) [14:51 [14:51 • 51. [14:51 :05) [14:51 :08) [14:51 [14:51 :12) [14:51 :16) [14:52 :18) [14:52 00) 00) 00) 00) 00) 00) 00) 00) 00) • 01) • 04) Start ed Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Lab host configuration test. directory 'D: \ Lability\configurations' exists. directory 'D: \ Lability\VNVirtuaIHardDisks' exists. directory 'D: \ Lability\Hotfixes' exists. directory 'D: \ Lability\ISOs' exists. directory 'C: \ ProgramData\Labi lity\ModuIes' exists. directory 'D: \ Lability\MasterVirtuaIHardDisks' exists. directory 'D: \ Lability\Resources' exists. node ' Hyper-V Role' configuration. node 'Hyper-V Tools' configuration. node ' Pending reboot' configuration. Finished Lab host configuration test. Started Lab configuration. Checking node configuration file 'D: \ Checking node configuration file 'D: \ meta.mof' Started Lab configuration test. Testing node ' configuration. Testing Image configuration ' Finished Lab configuration test. Node ' UAWI' is miss ing or misconfigured. Setting Virtual Switch configuration 'Internal vSwitch' . Using existing 'Internal vSwitch' virtual switch. Resource iso' checksum matches '64178A460F958D91DED05DFACD553783' . Creating disk image 'Windows Server 2016 Technical Preview 5 Nano 64bit English' . Creating disk image 'D: \ vhdx' Mounting disk image 'D: \ vhdx' Initializing disk image 'D: \ vhdx' Creating 'System' disk partition. Formatting 'System' disk partition. Creating 'OS' disk partition. Formatting 'OS' disk partition. Mounting disk image 'D: \ iso' . Applying Windows Image 'I' to vhdx' Adding Windows package(s) 'Microsoft-NanoServer-Guest-Package' to image 'F : \ ' Adding package 'Microsoft-NanoServer-Guest-Package' to image .

…after a lot of tasks that lability does for us:

ER80SE : ARNING: ER80SE : [14:55 :45] Creating baseline snapshot 'Lability Baseline Snapshot' [14:55 :45] CNAWI] Keyboard layout will be 'EN-LIS' [14:55 :45] Finished Lab configuration. Name State MenoryAssigned(M) Uptime St at us Version UWI off O PS 00:00:00 Operating normally 7.1

Check Lab

You can check the config now – start hyper-v manager and see whats happen:

Virtual Machines State CPU Usage
PL/Sdeus u se 日

..one VM with a Baseline Snapshot created..

 Additional Info´s

You can find a good video from Iain called “Man vs. Testlab” on youtube: https://www.youtube.com/watch?v=jefhLaJsG3E