Results for category "System Center 2012 R2"

Update Rollup 6 for System Center 2012 R2

Updae Rollup 6 for System center 2012 R2 released. I am happy to see that System Center team is focused and really fixing up the issues faster.

Specific to SCVMM 2012 R2 – Rollup 6, 46 bugs are fixed with this rollup.  Also few new features also got added with this rollup.


  • Issue 1

    An 801 error occurs when VMM objects are removed. VMM sometimes encounters an issue in which a VMM object such as a virtual machine cannot be removed either from the UI or Windows Powershell because some of its child objects are missing in the database. This frequently causes users to search for remedial scripts to remove the affected objects. In Update Rollup 6, VMM has improved three Powershell cmdlets to minimize 801-related errors. These cmdlets areRemove-SCServiceTemplate, Remove-SCLibraryServer, and Remove-SCLibraryShare. Users do not have to use the –Force flag together with these cmdlets in order to avoid 801 errors. The cmdlets provide the ability to resolve dependencies that lead to 801 errors.

  • Issue 2

    The VMM service crashes and generates an access violation error in System.Xml when it respons to an Integration Services event.

  • Issue 3

    Critical Exception in the WCF error handler — ObjectDisposedException — Microsoft.VirtualManager.Engine.Remoting.ClientConnection.HandleError. When VMM shuts down the WCF service host, it is calling Abort which can cause any unprocessed messages to be ungracefully terminated, and this can result in ObjectDisposedExceptions being thrown. VMM’s top-level WCF error handler sees these exceptions before the process has terminated and reports them as critical exceptions. So here VMM reports harmless errors as critical errors possibly adding to the user confusion.

  • Issue 4

    Option for MAC Address greyed out in UI when vnic is not connected. This prevents users from marking the nic as static. After you upgrade to VMM in System Center 2012 R2, customer cannot choose the option of Static Mac Address in the VM templates he creates, if the VM is not connected to a network. The MAC Address and IP options are greyed out when the VM is “not connected”. Therefore, he cannot assign a static MAC Address to the VM before the deployment.

  • Issue 5

    VM customization can fail with critical exception when Hyper-V does not return a floppy drive object. During customization of a VM there is a chance that Hyper-V will return the Floppy Drive object as null and VMM trying to add one, but adding Floppy Drive is not implemented at Hyper-V which will throw an exception causing job failure and leaves the VM in creation failed state but user can repair the VM to be functional, This ‘may’ occur if the Floppy Drive Config (on remote share) is not available to Hyper-V or Hyper-V is busy/stressed.

  • Issue 6

    Cannot deploy VMs with static IP when multiple IP Pools for one VM Subnet are configured. Customer tries to create a VM by using a Template which has static IP settings. If there are multiple IP pools in a Subnet and customer provides an IP address from a different pool than the default one (ie., auto populated pool shown in the UI), then the VM wizard finishes without any errors but the VM creation fails with “IP Address Out of range” error.

  • Issue 7

    VmmService crash occurs during handling of removed VM Subnets on IP change events sent by Hyper-v. In a NVGRE setup, if there is an event sent by Hyper-V for IP Change but the VM Subnet no longer exists in VMM, it causes a VMM service crash.

  • Issue 8

    VMS are reported missing as the VmMovedRefresherEvent is not received. When a VM move event occurs while a host is not in Eventing mode and the VM is in migration state and when the event refresher hooks up there might be a window where no one is listening and the update operation right before listening mode does not receive the change.
    Therefore VMM will not receive these changes until next Full Refresher which can be as worst as 24 hours.

  • Issue 9

    Require explicit flags to indicate missing or Service VM removal during Remove-Host to the user. Currently VMM does not check for the existence of VMs on host while removing host from VMM. A host can contain Service VMs, VMs deployed on cloud or having custom properties that are defined for it, If user accidentally remove such host then all these associations will be broken. This fix will avoid such scenarios by prompting users for a confirmation message before such hosts are actually removed from VMM.

  • Issue 10

    If you have a Logical Network that has multiple network sites, and the network sites are visible to the host network adapter, PAs from those different network sites will be allocated and the routing information must be set also. (Network sites are sometimes called “logical network definitions.”) In a multiple host scenario with vm1 on host1 being connected to PA1, there is a case if a VM2 is connected to a hnv LN and has a PA1 for NetwkSite1 and then it is disconnected and reconnected later on and has a PA2 for NetwkSite2 (randomly or because of PA exhaustion), then for some time, we might not populate the PA routing information between NetwkSite1 and NetwkSite2. This occurs because of the way the internal route representation is keyed for insertion in a hash table.

  • Issue 11

    When a host is refreshed it establishes a WinRM network connection (to each host refreshed) that constantly streams data

  • Issue 12

    When multiple host virtual network adapters are created, random failures are observed. When customers create multiple virtual network adapters in one shot as part of a logical switch, one or more virtual network adapter IP configuration may fail.

  • Issue 13

    User hits a duplicate key insertion in HostWSManGetter.UpdateRASDCache when doing a host update.

  • Issue 14

    When the user tries to clone a VM with checkpoints, after the cloning operation is complete, VMM wrongly recognizes the newly created clone VM as original VM, and incorrectly infers that the VM has migrated and tries to handle this change. Therefore, an additional VM on another host with ‘missing’ state is created. VMM thinks VM is using a different host and this VM is not visible to TFS until next VM update.

  • Issue 15

    When VSEM provider is upgraded, the provider’s capability to receive notifications is not indicated to the notification engine

  • Issue 16

    Networking placement crashes during dynamic host optimization. Some placement operations were supposed to be run as task. When it is executed in refresher task, context is null which leads to placement crash.

  • Issue 17

    When Delegated Administrators start the VMM console it takes 4+ minutes to open the VMM console. In large environments VMM console start is delayed for Delegated Administrators when it is compared to Administrators.

  • Issue 18

    Storage provider update fails after replacing disk on sofs.

  • Issue 19

    VMM cannot update replica/primary VM without ASR, also Migration of Recovery VM in IR Pending state does not perform live migration

  • Issue 20

    When a VM is deleted, the chechpoints are merged before being deleted. When the user tries to delete a VM with checkpoints, it takes a long time for deletion (sometimes up to an hour) to finish.

  • Issue 21

    A Run DO operation sometimes receives critical exception : DBCorruptionException

  • Issue 22

    Some users use large VIPAddress Sets instead of IP Ranges to make it easier to add/remove individual IPs. VMM Management Pack schema currently limits this field to 256 chars (default). However, the users may have values ~500 characters long. And therefore Discovery was breaking VMM-OM integration because of an unexpected exception from SCOM.

  • Issue 23

    Target RG and target LUNs are not associated after enableRG task if the RG/LUNs are precreated.

  • Issue 24

    Have to update MAC Address entries for an F5 Gateway device when it fails and is replaced. If an F5 Device is RMA’d and replaced with a new device with a new MAC address, VMM does not have a way to update the MAC address for the new device.

  • Issue 25

    Let user stamping on replica VM to let you stamp user identity. Users have to update UserRole and Owner attributes on their ReplicaVMs but currently any operation on the Replica VM is blocked. So, they cannot update these two parameters on Replica VMs.

  • Issue 26

    Registerred SMB share is not displaying as target path option when you deploy a new HA VM to a cluster.

  • Issue 27

    Critical Exception in the Storage Refresher when discovering the replication service — ArgumentNullException — SetCustomOptions.

  • Issue 28

    During the Host refresher VMM queries the team Information (switch team Or LBFO team). Whereas querying switch teams VMM hits the WSMan exception which causes the vswitch to disappear from the console.

  • Issue 29

    HTTPS protocol is not supported in Probe, then VMM cannot created monitor rule to monitor HTTPS site. VMM supports HTTP and HTTPs in the LB port configuration section but HTTPS is not supported in the LB probe protocol section.

  • Issue 30

    Resource owner (SSU User) not authorized to access ‘GrantedTo’ list of a resource and therefore not able to see who all have acess to the resource. When the user granting access is also a self-service user, then they cannot see the changes they have made until they restart the console. An admin user can see the change, but for a self-service user, the GrantedToList continues to return cached results, until they restart the console.

  • Issue 31

    Unable to move parent disks that have the built-in migration process of VMM. User has several hundreds of VMs, with all diff disks pointing to a single parent. Moving all these VMs to a new storage solution is being blocked by VMM. In case of diffdisks, if any ancestor disk in the hierarchy (parent/child relation) is shared by another diff disk, then the storage migration of diff disk is blocked by VMM, but same is enabled through Hyper-V Manager.

  • Issue 32

    Field expectedDSColumn throws critical exception while tracing the message for columns mismatch causing Server crash when it runs get-scvmhost. After Server DB is updated to Threshold, R2 server cannot work with it in certain cases. This codepath is used by some networking objects and ADHC objects.

  • Issue 33

    When scaling out an existing service template, duplicate Hyper-V VMs with the same name are created on VMM in System Center 2012 R2 Update Rollup 5.

  • Issue 34

    SCSR, WDS, and DPM servicing fails in VMM with error “22029: VMM could not create a process for the script command cmd.exe”

  • Issue 35

    Live migration of the VM fails, when we use clustered storage space as CSV and the VM’s storage is located on CSV. Hyper-V Cluster Live Migration does not work any longer after VMM 2012 R2 UR5.

  • Issue 36

    Base disk placement should rotate between valid placement shares.

  • Issue 37

    The VMM Console may use an existing Release string during service template copy. Sometimes, users cannot copy a service template by using “Copy” command for a service template. Reason is that Administrator console generates an already existing string for the release.

  • Issue 38

    The Capacity Overview Tile is missing in VMM in System Center 2012 R2. In VMM in System Center 2012 SP1, under the VMs and services pane, when you select a host and then click overview on the top menu, the console provides Summary and Capacity information about the selected host. The details about Processor cores, memory (GB) and Storage (GB) became unavailable in System Center 2012 R2.

  • Issue 39

    VMM Service Crashing because of duplicate VSID. In rare cases (synchronization/race-condition and random number collision), different HNV VM Subnets can obtain the same VMSubnetIdentifier (a.k.a VSID). This leads to unexpected behavior when you use these HNV VM subnets. For example, for VMs connected to this subnet, the VMs may not obtain the expected connectivity and will be unable to talk to VMs on the same subnet. Or when their IP address changes it will cause VMM Service crash.

  • Issue 40

    Deploying a VM behind a Load Balancer causes a Critical Excepion on Placement:

  • Issue 41

    Start Page that was introduced in Update Rollup 5, is removed in Update Rollup 6.

  • Issue 42

    A virtual machine is not associated with a replication group and could not be moved to a location that is protected by replication group.

  • Issue 43

    Guest IP on HNV Network is not marked as Dynamic/DedicatedGuestIP even if settings are enabled for it. CA Failover broken. For any IP address added/moved in a VM connected to NVGRE Network (HNV Guest Cluster/Guest IP Failover scenario), the IP address is *not* marked as dynamic (type = DedicatedGuestIP in VMM) even if the VM has the settings EnableGuestIPNetworkVirtualizationUpdates=true. When the first time that the IP address is added/moved it will work, but later failovers of the IP (moving from one VM to other) will not be detected automatically. Therefore the IP address will not be reachable and the VM will lose connectivity.

  • Issue 44

    Older embedded storage provider from Hitachi integration broken with UR5. The storage provider cannot be refreshed. This prevents management of the provider.

  • Issue 45

    The VMM client crashes when you set power optimization time range.

  • Issue 46

    A race condition exists in the disposal of the WnvEventEntrySubscriptionObserver when the connection of the host fails.


Removing stale HostCluster and VMHost from SCVMM 2012 R2

I had seen few cases where deleting a VMHost from SCVMM console may fail. Even with the -Force switch in Powershell will not help. This was based on my experience with the previous versions.

This time also, I got a chance to try it with SCVMM 2012 R2. Worked well.

Here is the sequence.

1) Delete all VMs from this cluster

2) Delete each Host one by one.

Remove-VMHost -VMHost HyperVHostName -Force

3) Once all Hosts are removed, Remove the VMHostCluster

Get-VMHostCluster -Name HostClusterName |Remove-VMHostCluster


Just Remove-VMhostCluster will not help.



PS C:\Users\shaba> Remove-VMHostCluster -VMHostCluster HostClusterName
Remove-SCVMHostCluster : Cannot bind parameter ‘VMHostCluster’. Cannot convert the “HostClusterName” value of type
“System.String” to type “Microsoft.SystemCenter.VirtualMachineManager.HostCluster”.
At line:1 char:37
+ Remove-VMHostCluster -VMHostCluster HostClusterName
+ ~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Remove-SCVMHostCluster], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.SystemCenter.VirtualMachineManager.Cmdlets.RemoveHostClusterCmdlet


Ensure that you have a safe backup before playing around !

Good luck !


SCVMM 2012 R2 – VLAN Information missing on the Network Adapter Configuration

Observed this issue last week. The VLAN ID in the Network Interface details inside the properties of a VM is not showing up as expected.

Here is the scenario.

SCVMM 2012 R2 with Windows Server 2012 R2 HyperV.

VMs are deployed and all works well. The Virtual Switch is configured as a Trunk and each VM needs to specify the VLAN ID. All well, However the VLAN ID of a VM is not getting displayed in the VMM console.

VLAN ID Missing on VM Properties

VLAN ID Missing on VM Properties


However, If we verify the VLAN ID of the same VM over this command let, its properly configured.

VLAN ID through command

VLAN ID through commandlet


Now lets try to change the VLAN ID through SCVMM Console.

VLAN ID Change through SCVMM

VLAN ID Change through SCVMM

I changed the VLAN ID to 66 and here is the confirmation of the job status.

Change VLAN through SCVMM - Job successful

Change VLAN through SCVMM – Job successful


After this change, I verified that the new VLAN got updated on the VM using the commandlet.


VLAN ID Change - Confirmation over Commandlet

VLAN ID Change – Confirmation over Commandlet


Going back to the SCVMM, The VM properties still don’t show that VLAN id is enabled and configured.


VLAN ID CHANGE – Still missing


However, if we go to the connection details, VLAN ID is displayed.

VLAN ID Change - Connection details

VLAN ID Change – Connection details


This may be a minor bug. I have opened a case with the Microsoft support. I will update once I get more details on this.


Temporary Template Error

It happened some how. The template was removed from the template folder and hence, the status was missing in SCVMM.


While trying to remove this template from SCVMM, Another error on dependent temporary template.

Delete missing template - error 848


It says that this object is dependent on a temporary template. The easiest way to remove temporary template is using the below commandlet.



This will remove all temporary templates in one stretch !




Delete a VM which is in UnSupported Cluster Configuration

It happens some time.. the VMM says that VM is in unsupported cluster configuration. In my case, I created few test machines, tested everything and deleted it from Hyper-V Manager. However, few of the VMs was created with VHDX file on a local drive instead of CSV Volume. In-fact, this message should be there in VMM, however I noticed this only after the VMs got deleted.

Remove VM on Unsupported Cluster Configuration

Unsupported Cluster Configuration

Trying to remove the VM directly form the VMM Console fails with error 809.

Error (809)
VMM cannot remove the virtual machine because it is in the Unsupported Cluster Configuration state.

Recommended Action
Change the virtual machine’s state, and then try the operation again.

So its clear that VMM expects the virtual machine’s state to be running or stopped or anything apart from “unsupported cluster configuration”.

Since I don’t see any option through GUI, I tried using the Power Shell module.



However, Remove-VM VMName didn’t helped as the commandlet failed with the below error.

Remove-VM : VMM cannot remove the virtual machine because it is in the
Unsupported Cluster Configuration state. (Error ID: 809, Detailed Error: )

Change the virtual machine’s state, and then try the operation again.


The next attempt is with a -Force switch.

Remove-VM VMName -Force

Remove-VM VMName -Force


That worked !


Power Optimization – Make a step towards an Eco Friendly Datacenter

In my view point, earth is heavily exploited. The greed for money and power makes people blind. However, I wish each of us do our part to save the green earth.

Today, I would like to take you through one of the great features which seems to be ignored by the majority. As per an old statistics in Wikipedia, 67% of electricity is produced from Fossil fuels. How about saving some power in the data center ? Are we saving something beyond the financial saving ?

I just tested Power optimization and feel great on the way SCVMM is growing and proving that its mature. Though we have Dynamic Optimization and Power optimization with SCVMM 2012, I am not seeing many organizations using it actively. I would recommend you all to consider this great feature and make use of it on your next design/implementation of SCVMM. Thus we – the IT team also can make a small contribution on saving the energy and reducing the carbon foot print.

Back to the topic – What is Power Optimization? We have the infrastructure built to withstand the high load on peak business hours. On many traditional business, the load for the IT is aligned with the business hours of the active business. In such cases, we can easily predict that the chance for having a peak load in off business hours is very minimal.  Why do we need to keep the full compute in the off business hours ? This thought is the base of Power optimization. With power optimization, In a defined windows – say off business windows – If the existing load on a cluster node can be distributed to other cluster nodes without affecting the load of other cluster nodes, SCVMM can turn off some nodes..

Lets try this. Power Optimization is a features which works on top of the Dynamic Optimization feature. Dynamic Optimization and Power Optimization can be configured on the Host Group Level.  By default, all host groups get this setting inherited from the parent host group. So the settings which is configured on “All Hosts” host group is applied for all host groups unless the inheritance is disabled.

For configuring Power Optimization, We need the below prerequisites.

  1. Run As Account to be created for managing the host using Baseboard Management Controller
  2. Local user creation on the BMC of each host server
  3. Baseboard Management Controller configuration for each host on SCVMM
  4. Live migration should be configured for Dynamic Optimization to work

Creating a Run As Account for BMC

Its a straight process. Navigate to SCVMM -> Settings -> Security -> Run As Accounts

run as account for bmc

Run As Account for BMC


Please note – the user account may be case sensitive. Please check the server manual from the manufacturer for the exact details.

Now we have the Run As Account ready. The next step is to have the same run ac account created on all the Hyper V hosts.

If you have a Blade enclosure, the usual way of managing the blade is through the on board administrator, through which we can manage/login to the individual server in the blade. However, the access is getting initiated over the On Board Admin which got access to login to each server individually. This does not mean the the account you connected to the On Board Admin page can access the remote web access of individual server. Hence, we need to login to the iLO/DRAC console of each individual server and create this account on each server.

Create local user on host to access Baseboard Management Controller

The next steps walks through the procedure on an HP Blade.

Login to the OnBoard Administrator webpage.

Navigate to Enclosure Information -> Device Bays -> Server

Select Web Administration to access the iLO Web Interface of the server we selected.

HP Onboard Administrator - Server iLO Web Administration

HP Onboard Administrator – Server iLO Web Administration


From the server ILO web page, Navigate to Administration -> User Administration

On the Local User Section, Click on the “New” button which is in the right end of the screen.

Create a local user name with the same user name and password we used in SCVMM Run As Account.

Assign all privileges for this account.

iLO Admin User Creation

iLO Admin User Creation

Perform the same steps on all Hyper-V hosts in the cluster to create an account

Baseboard Management Controller configuration for each host on SCVMM

The next step is to configure BMC on each Hyper-V host through SCVMM. In this step, we will link each server with its remote management IP address and the corresponding run as account which has the privilege to manage it.

Navigate to SCVMM -> Fabric -> Servers -> All Hosts ->Host Group -> Server

Right Click on the Server and take the properties on the server.

Navigate to Hardware -> Advanced -> BMC Settings

Select “This physical computer is configured for out of band (OOB) management”

Select the appropriate Power Management configuration provider.

Key in the BMC IP Address.

The default port is 623. If the port got changed on the server side, please adjust it accordingly.

Select the Run As Account created for BMC.

BMC Configuration

BMC Configuration

Click on OK and verify that the job was successful on the SCVMM jobs.

Configure this setting for each server in the cluster.

We are now ready with the prerequisites.

Configuring Power Optimization

As mentioned, Power Optimization works along with Dynamic Optimization. Now we will enable Power Optimization.

Navigate to SCVMM -> Fabric -> Servers -> All hosts -> Host Group of the cluster

Right Click on the Host Group and select properties

Click on Dynamic Optimization and enable Power Optimization.

SCVMM 2012 R2 Power Optimization

SCVMM 2012 R2 Power Optimization


Click on Settings to configure the Power Optimization settings and the time windows.

SCVMM 2012 R2 Power Optimization Settings

SCVMM 2012 R2 Power Optimization Settings

The best candidate for Power Optimization will be identified by SCVMM and then try to see if this host can be evacuated by moving the VMs to other available nodes, at the same time keeping the destination server load with in the above configured threshold.

Schedule is the window which SCVMM can perform Power Optimization. In my case, the ideal time for power optimization is in night from 10 PM to morning 6 AM.

The time windows is based on the local server time.

In the above mentioned settings, Every day between 10 PM and 6 AM, the servers will undergo power optimization. The first node will go down if the load hosted on the first node can be moved to other nodes with out breaching the threshold of 40% Processor load and 4 GB memory. The number of servers which can be powered down is based on the total number of cluster nodes. The general rule here is the number of nodes  required for satisfying node majority + 1. If its a 5 node cluster. If the cluster was created in VMM, we can use the witness disk that is automatically added to count as one additional node in this calculation.


CLUSTER NODES Created using SCVMM Created outside SCVMM and later added to SCVMM
Maximum nodes which can be powered off Maximum nodes which can be powered off
4 1 0
5 1 1
6 2 1
7 2 2
8 3 2
9 3 3
10 4 3


Server will be in maintenance mode if picked up by Power optimization and kept shut down.

When a server which is OFF due to Power Optimization will come back ?

  1. If the PO schedule comes to an end. In the above example, At 6 AM every day, the servers will be powerd on by SCVMM.
  2. A VM in the cluster is experiencing a warning condition due to resource availability and that can only be resolved by migrating it to a powered off node





Creating a Gen2 VM Template for SCVMM 2012 R2

In my previous post, I did mentioned about creating templates – how ever it was for Gen1 servers. With Windows Server 2012 R2, We have a new generation of VM – AKA Gen2.

Today I would like to give a brief on how to create a Gen2 Template. Usually, I follow the traditional method of building a VM on the Hyper-V host and prepare it for becoming a template. As we did the template creation for Gen1 VM, The whole process is divided into three stages.


The first stage is to prepare a VM for the template.

  1. Create a Gen 2 VM – I will name it as Golden Image
  2. Windows Patch Updates
  3. Install HyperV Integration Component
  4. Antivirus/Agents or any of the custom software required on all servers deployed using this image
  5. Enable RDP
  6. Disable Firewall
  7. Set Administrator password blank
  8. Export the VM – This is required if we need to update template on a later stage
  9. SysPrep and Shutdown

The second stage is to configure the per-requisites on Hyper-V for template / deployment using template.

  1. Run As account for Local Administrator – Create if not created already.
  2. Run As account to be used with ADJoin which has the rights to Join Computers on AD – Create if not created already.
  3. Gust OS Profile – Create only if not already created.
  4. Create Gen2 Hardware Profiles

In this second stage, Run As Account and Gust OS profile can be the same which was created for a Gen1 VM. How ever, we need to have a Gen2 Hardware profile created. As you know, the architecture itself is different between a Gen1 and Gen2 VM. Hence, Its important to have a Hardware Profile created for Gen2 Server. As all other steps are similar, I will only walk through this now.

Navigate to SCVMM -> Library -> Profiles -> Hardware Profiles

Create a new Hardware Profile

On the General Page, Enter the Profile Name

Make sure Generation is selected as Gen 2.

Gen2 Hardware Profile 1

Configure the Hardware components as per your requirement.

On the Firmware page, Enable Secure Boot should be checked (By default, its checked. Don’t uncheck it).

Gen2 Hardware Profile - Secure Boot

And that’s it. We have the Hardware profile for Gen2 VM. Now we are ready for stage 3 which is the template creation.


In the Third Stage, I assume that we have a Gen2 VM which is prepared with SysPrep.

Navigate to SCVMM -> VMs and Services -> All Hosts

Identify the Golden Image VM which we created and performed SYSPREP.

Right Click on the VM and select Properties.

Ensure that the Operating System and Integration Service is properly updated in SCVMM.

If Operating System is displayed as unknown, Select the right Operating system and Click on OK.

Template VM- Properties

Few experts has mentioned that we need to enable the check mark for  “Contains the Operating system for the virtual machine”. Logically its correct and hence I too did that. Don’t ask my if its mandatory.

Template VM- Disk Properties

Thats it. We are ready to create the template.

Right Click on the VM and Select Create -> Create VM Template

Read the warning and click on OK.

Template Name

On the Hardware Configuration, Just click next.

On the Operating System configuration, Select the appropriate Gust OS Profile.


Select the VMM Library Server

Select the path where you need to store this on Library. I will usually put under the Templates folders inside. You can even create a folder structure as you wish.

Review the summary and click on Finish.

Once the template is created, create a new VM.

Template Selection

Select the template and click on OK.

Click next to proceed.

Create VM

On the Configure Hardware Profile, Select the Gen2 Hardware profile we just created.

Create VM - hardware profile

On the Gust OS Profile, Select the appropriate GUST OS Profile.


And proceed with the next steps what we did for a Gen1 VM creation.


ODX along with SCVMM 2012 R2 – Fast File Copy

The next step after ODX is to make use of it in the real scenarios. In my viewpoint, Machine deployment will be the best consumer who can showcase a significant performance improvement using ODX. The traditional deployment using SCVMM make use of BITS over Network. And I see that for a deployment, which takes 10 minutes – more than half of the time will be used for moving the VHDX file to the destination HyperV Server.

With VMM 2012 R2, we optimized the speed for VM deployment from VMM library by leveraging Offloaded Data Transfer (ODX).  Many large environments use SAN storage.  ODX is a feature introduced on Windows Server 2012 which automatically orchestrates and optimizes the use of SAN storage by using tokenization on reads and writes without using buffers.  With this capability, copying the VM can offloaded to the SAN device which decreases the server cpu utilization and decreases network bandwidth consumption which provides faster VM deployments. To use ODX, SAN storage must support this feature.

Thansk Keiko Harada for making this post.

I just tested out ODX along with SCVMM 2012 r2. I am well impressed as the performance gain is clearly visible. The VM Deployment from templates only require few minutes compared to the time consumed before.

The current environment where I tested ODX contain Windows Server 2012 R2 Hyper-V Cluster along with SCVMM 2012 R2. Hyper-V Servers and SCVMM Server got disk allocated from an ODX capable SAN. SCVMM make use of the SAN Volume for library.

For ODX to work with SCVMM – Here is the Prerequisites

  • Only for new VM deployment from the VMM library
  • RAA (run as account) on source and target
    • VMM and the hosts (source and target) must be on the trusted domain with no firewall among the environments.
  • VMM R2 agent
  • VMM R2 Server
  • Windows Server 2012 and above
  • ODX supported SAN storage

I got all other prerequisites except the RAA.

And for that reason Fast File copy was not functional. While trying to deploy a VM from template, On the HOST Selection page, This was getting clearly evident.

The message inside “Deployment and transfer explanation” says – Creating Virtual Machines using fast file copy requires the host hostname to have an associated Run As Account.

Fast File Copy Require assosiated run as account

In my case, the Run As Account was not configured initially. I created the Hyper-V Cluster from SCVMM but later – while tried to configure the Run As Account for Host Management, that option was disabled.

HOST Access - Run As Account Disabled

Some search on Technet forum pointed me to this page where we can configure the Run As Account through Shell.

$YourCluster = Get-SCVMHostCluster -Name YOUR-CLUSTER-NAME

$YourRunAs = Get-SCRunAsAccount -Name “YOURRUNASACCOUNT”

Set-SCVmHostCluster -VMHostCluster $YourCluster -VMHostManagementCredential $YourRunAs

After executing this, Run As Account got displayed in the Host properties.

Host Access - Run As Account Assigned

Now we are all set with the prerequisites for Fast File Copy.

Lets try it.

Now VM Creation is using FAST FILE COPY 😀

Deploying using Fast File Copy

See the total time took for completing the file copy. Just 50 Seconds.

fast file copy - start time and end time

The same template when deployed with out Fast File transfer took more than 4 minutes.

Deploying without Fast File transfer

Thus the total time took for deploying a VM came down drastically – Now its just 3 Minutes.

Create VM - Total Time

Enjoy !


Configuring Hyper-V Cluster using SCVMM 2012 R2 – Part 3

In this part, I will be covering how to setup a template. This was one of the post which I really enjoyed just because lot many things worked well today… 😀

In fact, I was experimenting on templates for more than a week with different combinations – But stuck on just one single issue. VMs are not getting joined to Active Directory as expected. I had similar experience with SCVMM 2012 and the twist was adjusting the image with some tweaks. However, I forgot what I did to fix this with SCVMM 2012 and continuing with troubleshooting. Today, I made it successful !

So lets do it before I forget 😀

Creating a Window Server 2012 R2 STD Gen 1 Template

The first stage is to prepare a VM for the templage

  1. Create a Gen 1 VM – I will name it as Golden Image
  2. Windows Patch Updates
  3. Install HyperV Integration Component
  4. Antivirus/Agents or any of the custom software required on all servers deployed using this image
  5. Enable RDP
  6. Disable Firewall
  7. Set Administrator password blank
  8. Export the VM – This is required if we need to update template on a later stage
  9. SysPrep and Shutdown

The second stage is to configure the per-requisites on Hyper-V for template / deployment using template

  1. Create Run As account for Local Administrator
  2. Create Run As account to be used with ADJoin which has the rights to Join Computers on AD
  3. Create Gust OS Profile
  4. Create Hardware Profiles
  5. If the HyperV Data Network is on trunk, Configure IP Pool for the Subnet which the VMs will be placed while deploying

The final stage is to create the template.

So lets go back to Stage 1. The first few steps are very direct and straight. So I will skip these steps and jump to the 7th step.

Set the Administrator password to blank

The default local policy have complexity enabled – due to which we are forced to give a password as the last step of installation. So lets adjust the local password policy so that we can have a blank password.

MMC ->File -> Add Remove SnapIn -> Select “Group Policy Object Editor” and click Add

By Default, Local Computer Policy will be selected. Click on Finish and then OK


Select Local Computer Policy

Navigate to Local Computer Policy -> Computer Configuration -> Windows Setting -> Security Settings -> Account Policies -> Password Policy

Double click on “Password must meet complexity requirement” policy.

Password must meet complexity

This policy is enabled now. We just need to make it disable it.

Disable Password Complexity

Now we can reset the local users password to blank.

Reset password to blan

Next step is to export the VM.. Yea – Its a live export 😉 . This will be used in case if we need to do further update or the template creation failed in between. The VM which is used for creating the template will get destroyed. So its better to export and keep a copy safe.

Now we are ready for Sysprep


Once Sysprep is completed, the VM will be shut down.

Preparing SCVMM

The run as accounts which we are creating this are optional, how ever – I prefer that.

The first run as account is for the local administrator. Once the VM is deployed, we need to have a local administrator with password. I know – you should be thinking who wants to keep the administrator password blank on a server 😀

From SCVMM -> Settings -> Security -> Run As Accounts


Click on “Create Run As Account”


In the same way, Create one more run as account for AD Joining process. For this Account, the user name should be domainname\domainuser.

This Active Directory account should have the permission to join computers in AD.

I also recommend to keep the “Validate domain credentials” checked to ensure that the password stored is correct.


The next step is Gust OS Profile. Here we define the OS details, Local Admin Password, Time Zone, Roles and features, Domain Join etc.

Navigate to SCVMM -> Library -> Profiles -> Gust OS Profiles

Gust OS Profiles1

Click on the Drop Down Menu – Create and select Gust OS Profile

Create Gust OS Profile

In General, Enter the OS Name and Compatibility details.

New Gust OS Profile - 1

In Gust OS Profile, Choose the OS Details first from the drop down menu.

New Gust OS Profile - OS Selection

No need to change identity information.

On Admin Password, We need to make use of the Run As Account we created for Local Administrator.

Gust OS Profiles - Local Admin

If the environment don’t have a KMS, You can manually enter the Product Key.

Set the Time Zone according to your requirement.

Gust OS Profiles - Time Zone

If you need to have any Roles or Features in Common on these VM, You can select the required roles and features.

In Domain/WorkGroup, Enter the domain name and the Run As account for performing AD Join task.

Gust OS Profile - AD Join

If you are using a legacy OS, You may need to make use of an Answer File.

GUIRunOnce command can be used to perform onetime activity along with the deployment.


The next step is to create the hardware profile. Hardware profiles are used to provision VMs with a pre-defined, standard hardware configuration. Its like defining different offering plans. I usually create Gold-Silver-Bronze Plans.

Navigate to SCVMM -> Library -> Profiles -> Hardware Profiles

From the “Create” drop down menu, Select Hardware Profile.

Hardware Profile  - Generation

Define the Processor, Memory, Other hardware components as per your requirement. Define if the VM using this hardware profile needs to be highly available.

Hardware Profile  - Details


One important setting here is the configuration in Network Adapter. We need to ensure that the profile is connected to the correct VM Network which is available on the destination HyperV Cluster / Server.

If we have multiple VLANs configured as trunk, We will be selecting the specific VLAN we required while configuring the network. I dont see such option to select the specific VLAN while we deploy from a template. The work around I got from various forums/blogs is to use an IP Pool in SCVMM for the desired VLANs.

We defined a Logical Network for VM Network in the Part-1 of this series. In LN-VM-Network, We defined only one subnet as I made it as a demo. However, In the real world scenario – We will have have multiple VLANs which will be configured as TRUNK and we may need to tag the right VLAN for each VM. This part is important as we expect the VM to be joined into our domain along with the deployment. For ADJOIN to happen, the network needs to be working fine. And once we trigger a VM creation from template, We dont have an option to edit the configuration before the deployment is complete.

Here is a quick look of the different VLANs currently linked with Logical Network – LN-VM-Network.

VM Network - VLANs

While deploying from the template, SCVMM will chose one of those VLAN from this group. In order force the template to use one of the VLAN among this, the workaround is to create an IP Pool for the VLANs and then select this IP Pool to be used while creating VM from the template.

So lets do that.

Navigate to SCVMM -> Fabric -> Networking -> Logical Network

Right Click on LN-VM-Network and select Create IP POOL

Create IP Pool

Enter the name for the IP POOL and the Logical Network which should be linked.

I am planning to create an IP POOL for which is already defined the the Logical Network – LN-VM-Network.


Specify the IP Range to be used. We will just give a few IPs available for this purpose.

Create IP POOL - IP Range

Define the Gateway address for the IP Subnet.

Create IP Pool - Gateway

Enter the DNS Servers

Create IP Pool - DNS

If you have WINS still in your infrastructure, you can define the WINS Servers.

Review the Summary and click on finish.

Create IP Pool - Summary

So we are done with Staeg 2. Good to start the template creation.

Creating VM Template

Navigate to SCVMM -> VMs and Services -> All Hosts

Identify the Golden Image VM which we created and performed SYSPREP.

Right Click on the VM and select Properties.

Ensure that the Operating System and Integration Service is properly updated in SCVMM.

If Operating System is displayed as unknown, Select the right Operating system and Click on OK.

Golden Image - OS IC Check

Right Click on the VM and Select Create -> Create VM Template

Create Template

Oh.. WARNING – Creating a template will destroy the source virtual machine VM Name.

Always read warning and understand correctly before proceeding with YES or NO.. 😀

Create Template - Warning - Source VM Destroy

Enter the name for this Template

Create Template - Template Name

No need to change anything on the Hardware.. Just click NEXT.

Configure Operating System – Select the GUST OS Profile which we created for Windows Server 2012 R2 Std.

Create Template - OS Profile

Select the VMM Library Server

Select the path where you need to store this on Library. I will usually put under the Templates folders inside. You can even create a foldersturcture as you wish.

Review the summary and click on Finish.

The whole process will take 5 t0 10 minutes usually – depending on the mode of file transfer (Network or Fast Transfer if ODX is enabled), Size of the VHDX file etc.

We are good to deploy a VM from a template.


Select “Use existing Virtual Machine, VM Template or Virtual Hardisk” which is the default option and click on Browse.

Create VM

Navigate the to Type : VM Template and select the Template which got created now.

Create VM - Selecting Template

On the Identity – Key in the Virtual Machine Name and Description.

Create VM - VM Name


On Configure Hardware – Select the Hardware Profile which we created.

Create VM - Hardware Profile

As I mentioned earlier, If the environment is having TRUNK on the HyperV Data Traffic, You need to select Static IP (From a static IP POOL) in the Network Adapter properties.

Create VM - Static IP from IP POOL

On Configuring Operating System, Select the GUST OS Profile which we created.


Select the Destination to deploy the Virtual Machine.

Create VM - Destination

Create VM - VM Computer Name

create vm - set computer name

On the Networking, Click on the Network Adapter. On the Address Pool, the IP Address Pool which we created is selected.

Create VM - Network Adapter Setting

In the Machine Resources,  Enter the Destination PATH – the location where to save the VHDX, VHDX File Name etc.

Create VM - Network Adapter Setting1

Make sure that a Folder exists in the destination path if you are pointing a folder in the destination path.

On Add Properties, Select the Automatic Action and action to take when HyperV Servers stops.

Review the summary and proceed.


Configuring Hyper-V Cluster using SCVMM 2012 R2 – Part 2

In this part, I will be covering the below topics.

  • Adding Hyper-V hosts to SCVMM 2012 R2
  • Creating Hyper-V cluster through SCVMM 2012 R2
  • Configuring Logical switch on the Hyper-V hosts from SCVMM 2012 R2


In the last part, we prepared the servers, assigned storage, configured Host Groups and configured the fabric.

 Adding Hyper-V hosts to SCVMM 2012 R2

From VMM Console, Go to Fabric -> Host Group

Right Click on the Host Group where this server will be a part of and sedlect Add Hyper-V Hosts and Clusters


Computer Location

user credentials

server names



Select the Servers which needs to be added on SCVMM and Click on Next.


Server Disovery

HyperV Role Installation Warning




Select host group

Review the activities and proceed.

This step will usually takes few minutes and the progress can be checked by verifying the Running Jobs on SCVMM Console.

Once the job is successful, You may receive a warning which says that “A restart is required to complete the multi-pathing I/O devices on the host Hence, I prefer to get the nodes rebooted.

At this stage, The Servers should be properly communicating with SCVMM and the host status should be OK.

Fabric - After Adding Servers

 Creating Hyper-V cluster through SCVMM 2012 R2

Now we have the Host servers added to SCVMM. However, these are standalone HyperV hosts. The next step is to build a cluster through SCVMM.

Go to SCVMM -> Fabric -> Create -> Hyper-V Cluster

Create Cluster


CLuster Name

Select the appropriate host group where we have the Hyper-V Hosts. Once the correct host group is selected, the HyperV hosts will be visible in Available Hosts.


CLUSTER CREATION - Available Hosts

Skip Cluster Validation test – Please always uncheck this. Cluster validation test will perform all mandatory tests with respect to each Host, OS, Network, Storage etc to ensure that the cluster created out of these nodes will work like a HERO 😀 – provided all test result must be green.

Select the Hosts which are required for the cluster and Click to Add > to move the hosts to “Host to Cluster” box.



Cluster IP

Now we need to select the DISKS which will be used in the CLUSTER.

Create Cluster - DISK Configuration

All the remote storage connected to the hosts will be displayed now.

SCVMM detects the smallest disk of the group and reserve if for “Witness Disk”.

I have assigned another 500 GB disk, which will be used as a CSV. This disk needs to be formatted as NTFS and converted to CSV.

We have different check boxes for each disk.

Quick Format – As the name states – this option will preform a quick format. The same option available while trying to do a Format from OS.

Force Format – If the selected disk already contain some data – Then we need to select this so that SCVMM will forcefully do the format

CSV – This option will convert the disk into a CSV disk once cluster is created


The next option is to select Virutal Swithc – Which we will skip now and create it once the cluster is created.


Review the activities and click on Finish.

To get the detailed progress, Review the running job for “Install Cluster”.

Create Cluster - SCVMM Job

Unfortunately, This attempt got failed as the cluster validation process detected some errors. Lets quickly go through the error and fixt it.


Cluster Creation - Validation Failed

To get the detailed report, Go to any of the Host and navigate to C:\Windows\Cluster\Reports. Open the latest report mentioned on the above error.

Cluster Validation - ErrorFrom the report, The error is on Network. Click on Network to do further drill down.

Cluster Validation - Error - NetworkOn the detailed report of Network, “Validate Network Communication” Failed. Click on Validate Network Communication to drill down further.

Cluster Validation - Error - Network communication

Now I got it. I have multiple NICs on each server.

1 For Management

1 For Live Migration

2 for HyperV-Data

I have assigned IP only for Management and Live Migration. The interfaces for HyperV Data will be used to create a team while we configure Virtual Switch on each server from SCVMM. So I planned to keep these interfaces disabled, however one NIC DATA-2 was left out. Data-2 got a APIP IP and the validation wizard detected that both servers are having one each interface on the same IP range, however not able to communicate each other which is a serious problem. 😉

I disabled the Data-2 interface on both server and proceeding with cluster creation now.

To Restart a failed job,

SCVMM -> Jobs -> History

Identify the failed job and right click. Select Restart.

And now I verified the Cluster Validation report and see all green 😀

Cluster Validation - Success

The progress can be reviewed from the running Jobs. And once the Job is completed, The Cluster will be visible in the SCVMM Console.


Configuring Logical switch on the Hyper-V hosts from SCVMM 2012 R2

Now we have the HyperV Hosts which is part of a cluster. The next step is to assign the Logical Switch to the Hosts.

SCVMM – > Fabric -> Host Group -> Cluster -> Node -> Right Click and select properties

Select Virtual Switches

Click on New Virtual Switch and select New Logical Switch

AddingVirtual Switch

Add both Physical Adapters – DATA-1 and DATA-2.

Add the appropriate port profile – In this example “Port Profile – Prod – DC1″

Click on OK.

Do the same steps on the second host.

Thats it ! You are done. You can create a VM now and try assigning the Logical Switch.

test VM


Note – These posts needs more description and some more final updates which are on its way. Visit this space again.