My Wish Came True! My First Post as Microsoft® Hyper-V™ MVP! #HyperV #MVPBuzz #MVP #Congrats

One day I have been asked… What do you want to be when you grow up? My answer was Microsoft® Hyper-V™ MVP!  Smile

On October 1st 2014, my wish came true as I received the confirmation email from Microsoft for my first MVP Award. Open-mouthed smile


I’m proud now being part of this worldwide experts community, which is a group of ~75 MVPs around the world. This not only shows that Microsoft® is recognizing my work for the community over the last years, it also shows that these efforts together with the support of my fellow Hyper-V MVPs, friends and colleagues have pushed me a huge step forward. I’m really looking forward to the MVP Global Summit, kicking of in Redmond next month. I’ll meet a lot of fellow MVPs and Program Managers in person.

I am greatly humbled and honored for all those in the community that have found my contributions meaningful in some way.

In my professional career, my goal has always been to share knowledge and evangelize technology amongst peers, user groups, and the IT community at large. Receiving MVP recognition tells me those contributions have been effective and are being positively received.

I would like to send a big “THANK YOU” to all my fellow Hyper-V MVPs for supporting me and pushing me forward.

Last but not least, a huge “MULTUMESC” to my family, and especially to my wife Ioana for her support and patience beside all my regular work, who is the reason that I can fulfill my dream and follow my passion.

MVP status will allow me to continue to provide the community with continued valuable content in a more official capacity, I look forward to continuing my contributions to you (the IT community), and to inspire more people building Microsoft® Virtualization and Clouds for years to come.

Thank You Microsoft®! and Congratulations to All the New and Renewed MVPs…


Time to get back to our regularly busy schedule…

Until then… fasten your seat belt and enjoy the ride with Hyper-V™!


Posted in Hyper-V, MVP

Do You Want To Automate and Manage Hyper-V via PowerShell? New Free eBook: The Altaro PowerShell Hyper-V Cookbook #HyperV #PowerShell #Altaro

Hello folks,

Are you actively using PowerShell to help manage your Hyper-V? Pick up a copy of the new eBook, entitled “The Altaro PowerShell Hyper-V Cookbook”, written by PowerShell MVP Jeff Hicks.


In this eBook you’ll find a number of recipes to cook and eat up a number of PowerShell scripts that will help you make complex tasks easier to manage. Don’t worry though, you don’t need to be a PowerShell expert to use the recipes and all recipes are provided in a separate zip file so you can start “cooking” right away Bowl

Here’s what you can expect from this eBook:

  • Some Hyper-V Cmdlets basics
  • Creating a Virtual Machine
  • Virtual Machine inventory
  • Get Mounted ISO Files
  • Identifying orphaned VHD/VHDx files
  • Deleting obsolete snapshots
  • Querying Hyper-V event logs
  • Hyper-V Health reporting
  • Various PowerShell tips, tricks and resources


Get your free copy now @ ebook

N’joy your day!


Posted in Altaro, Hyper-V

There Was an Error During Move Operation… Migration Did Not Succeed. Could Not Start Mirror Operation For The VHD File. The User name or Password is Incorrect (”0x8007052E’) #HyperV

Sometimes I just need my blog as Knowledgebase to find something in the future, so this is exactly one of this blog post.

When I was migrating a Virtual Machine from Host A to Host B using Shared-Nothing Live Migration, the migration operation failed with the following error:

PowerShell Error:S.NOTHING-LM01

Hyper-V Manager Error:


SCVMM Error:


The error is consistent between PowerShell, Hyper-V Manager and VMM Sad smile.

The environment is very simple, here is a quick overview:

Two Hyper-V standalone servers 2012 R2 joined to the same domain managed by SCVMM. Host A was in production for quite some time, however Host B is new virgin host just deployed and fully patched Winking smile

If we look at the migration settings for both nodes, we found the following:



As you see the only difference is the incoming live migration network subnets, Host A has two subnets however Host B has only one subnet, but sure enough this is not the case since the migration will take place only on the 25.0/24 subnet.

Let’s do the opposite side, we will create a demo VM on Host B and then migrate to Host A.

The fast test will be… of course with PowerShell Smile

PC C:/>New-VM DEMO-VM -MemoryStartupBytes 4096MB -Generation 2 -Path “D:\VirtualMachines” -NewVHDPath “D:\VirtualMachines\DEMO-VM\Virtual Hard Disks\DEMO-VM.vhdx” -NewVHDSizeBytes 100GB -Verbose
PC C:/>Set-VMProcessor DEMO-VM -CompatibilityForMigrationEnabled $true -verbose
PC C:/>Start-VM DEMO-VM -verbose
PC C:/>Move-VM DEMO-VM -DestinationHost SC-MGMT -IncludeStorage -DestinationStoragePath “D:\VMs\DEMO-VM” –Verbose


The VM moved successfully Disappointed smile

What are the symptoms that we observed so far:

  • Shared-Nothing Live Migration from Host A to Host B Failed!
  • Shared-Nothing Live Migration from Host B to Host A Succeeded!

Let’s try to move back the DEMO-VM from Host A to Host B…


That error is, unfortunately, a misleading error. There is nothing wrong with the username or the password, I have full admin privilege on both Hyper-V nodes. The real problem that I have two different Management NICs with two different DNS servers set on each Surprised smile. The target host server must be resolvable by DNS, for this reason HOST B was able to resolve HOST A but not vice versa. The solution was simple, remove the second DNS server, flush and register the DNS on host A, and then finally flush the Address Resolution Protocol (ARP) cache!

ipconfig /flushdns
ipconfig /registerdns
command arp -d *

And here you go… I was able to move back the DEMO-VM from Host A to Host B!


Lessons Learned: Only one Management NIC must be set with DNS and Gateway, and the other network traffic such as (Live Migration, Storage, Cluster, iSCSI, Backup, etc…) must be set with only IP address, because failing to resolve the target host server via DNS will cause the migration to fail.

Hope this helps!

Until then… N’joy your day!


Posted in Hyper-V, KB

Live Webinar: StarWind Virtual SAN For Hyper-V Clusters and How To Achieve High Availability and Protection from External Threats For Free Hyper-V Server? #HyperV

1. Live Webinar: StarWind Virtual SAN break-out session: Hyper-converged storage for Hyper-V clusters

Wednesday, October 1, 2:00 pm ET / 11:00 am PT
Featured Speaker: Max Kolomyeytsev, Product Manager, StarWind Software
Join StarWind Virtual SAN live demonstration and see the software from a user’s perspective. Learn how to configure a fault-tolerant Hyper-V cluster using just two commodity servers and no extra hardware. Get a full insight into operations from Max Kolomyeytsev, the StarWind Virtual SAN product manager.

Registration page:

StarWind Virtual SAN breakdown session_FB

2. Live Webinar: How to Achieve High Availability and Protection from External Threats for Free Microsoft Hyper-V Server

Tuesday, October 9, 2:00 pm ET / 11:00 am PT

Featured Speakers: Alexander Karavanov, Virtualization Security Engineer, 5nine Software
Max Kolomyeytsev, Product Manager, StarWind Software

Join virtualization experts from 5nine Software and StarWind Software to learn how to achieve high availability and protection from external threats for Free Microsoft Hyper-V Server.
Discover best practices on how to:

  • Leverage extensibility of Hyper-V virtual switch to provide efficient network security
  • Improve performance and protection with virtual firewall and agentless antivirus using 5nine Cloud Security
  • Achieve true high availability and Hyper-V cluster resilience with StarWind Virtual SAN
  • Minimize the number of hardware components while leveraging configuration reliability

Registration page:

FB_How to Achieve High Availability_7

Posted in Hyper-V, StarWind

Step By Step: How To Create A Two-Way Mirrored Storage Space via PowerShell? #StorageSpaces #PowerShell

In this blog post we will continue our step by step series on Microsoft Storage Spaces, if you missed the previous post on How To Replace A Faulty Disk In Two-Way Mirrored Storage Tiered Space, then make sure you check it here.

In today’s post I will walkthrough how to create a Two-way mirror Storage Space via PowerShell.

So without further ado, let’s get started.

First we will check the available physical disks in the system:

PS C:\>Get-PhysicalDisk


Next we will list the physical disks that can be pooled into our Storage Pool filtered by Friendly Name, Operation Status, Size and Media Type.

PS C:\>Get-PhysicalDisk –CanPool $True | ft FriendlyName,OperationalStatus,Size,MediaType


As you can see we have 4 disks that can be pooled (2X136GB and 2X418GB).

We will store all physical disks that can be pooled into a variable, $Pooldisks

PS C:\>$Pooldisks = Get-Physicaldisk | ? {$_.canpool -eq $true}

Next we will create a new Storage Pool using the disks in variable $Pooldisks with a name of “DCHV-StoragePool1

PS C:\>New-StoragePool -PhysicalDisks $Pooldisks –StorageSubSystemFriendlyName “Storage Spaces*” -FriendlyName “DCHV-StoragePool1”


Here is the result in the UI:


Now let’s view the disks in the Storage Pool that we just created.

PS C:\>Get-StoragePool -FriendlyName “DCHV-StoragePool1″ | Get-PhysicalDisk | Select FriendlyName, MediaType


As you can see the MediaType is shown as UnSpecified, so before we continue we must set the MediaType properly.

And since I am using only Normal Hard Drives in this demonstration, we will set the MediaType to HDD, and if you are creating a tiered Storage Space, then make sure to set each type properly (HDD / SSD).

PS C:\>Get-StoragePool DCHV-StoragePool1 | Get-PhysicalDisk | Set-PhysicalDisk -MediaType HDD


Let’s view the disks in the Storage Pool after we specified the media type to HDD:

PS C:\>Get-StoragePool -FriendlyName “DCHV-StoragePool1″ | Get-PhysicalDisk | Select FriendlyName, MediaType


Last but not least, we will create a New-VirtualDisk with ResiliencySettingName Mirror, then the NumberOfDataCopies is equal to (2=Two-way mirror Space, 3=Three-way mirror Space). In this demo we can only create Two-way mirror space since we have only 4 disks, however for Three-way mirror we need 5 disks. A two-way mirror will allow you to suffer the loss of a single disk with no problems while a three-way mirror will allow you to lose two disks.

Next we move to choose the ProvisioningType (Fixed or Thin), we will choose Fixed instead of Thin provisioning, and then we specify Maximum disk size. It’s very important to mention that thin provisioning will not prevent storage shortages. Applications will break if storage is not added to the thinly provisioned volumes in time.

The final and confused parameters are the NumberOfColumns and the Interleave Smile.

The more columns means more performance because multiple disks will be engaged at once in Read/Write operations, but it’s also limited in flexibility with expanding existing virtual disks, especially in tiered scenarios. So what’s the best size for columns for Two-way mirror Storage Space?

Typically the column count will be equal to the number of physical disks of the storage space (for simple spaces) or half of the number of disks (for mirror spaces). The column count can be lower than the number of physical disks but never higher.

The more is better in terms of performance, but the less is better in terms of flexibility for future expansion. There is no simple answer here, so it depends!

Here is a Two-way mirror virtual disk with Number of Columns=1.

PS C:\>New-VirtualDisk -StoragePoolFriendlyName DCHV-StoragePool1 -FriendlyName DCHV01-vDisk1 -ResiliencySettingName Mirror -NumberOfDataCopies 2 -ProvisioningType Fixed -UseMaximumSize -NumberOfColumns 1 -Verbose


Here is a Two-way mirror virtual disk with Number of Columns=2.

PS C:\>New-VirtualDisk -StoragePoolFriendlyName DCHV-StoragePool1 -FriendlyName DCHV01-vDisk1 -ResiliencySettingName Mirror -NumberOfDataCopies 2 -ProvisioningType Fixed -UseMaximumSize -NumberOfColumns 2 -Verbose


As you can see with Column#1, we have more capacity space than Column#2. If you use 1 column, your space will only be as fast as one individual disk.

The Interleave parameter represents the amount of data written to a single column per stripe. The default Interleave value is 262,144 bytes (256 KB).

The final step is to initialize the volume and create the new partition.

PS C:\>Get-VirtualDisk DCHV01-vDisk1 | Get-Disk | Set-Disk -IsReadOnly 0
PS C:\>Get-VirtualDisk DCHV01-vDisk1 | Get-Disk | Set-Disk -IsOffline 0
PS C:\>Get-VirtualDisk DCHV01-vDisk1 | Get-Disk | Initialize-Disk -PartitionStyle GPT
PS C:\>Get-VirtualDisk DCHV01-vDisk1 | Get-Disk | New-Partition -DriveLetter “D” -UseMaximumSize
PS C:\>Initialize-Volume -DriveLetter “D” -FileSystem NTFS -Confirm:$false -NewFileSystemLabel “Hyper-V”

Microsoft has a great Storage Space performance paper which goes in more detail and is worth a read.

Until then… N’joy your day!

Posted in Storage Spaces, Windows Server, Windows Server 2012 R2

Step By Step: How To Replace Faulty Disk In Two-Way Mirrored Storage Tiered Space? #StorageSpaces #WS2012R2

Hello Folks,

As you know that Physical disks often experience errors of varying severity, from errors that the disk can transparently recover from, without interruption or data loss; to errors that are catastrophic and can cause data loss such as bad sectors…

In this blog post, I will walkthrough my experience on how Storage Spaces responds to a faulty disk in Two-way Mirrored Storage Tiered Space, and how you can replace the disk without interruption or data loss.

My Hyper-V server was happily running until I received the status e-mail below!

Good morning Mr. Hyper-V, you have a Hard Disk failure Sad smileimageimage

Before I start with the procedure to replace the disk and repair my degraded Storage Space, I will give you an overview of the system.

I am running Hyper-V server on PhysicalDisk0 as Raid 1, and I am leveraging Two-way mirrored Storage Tiered Space for my Virtual Machines (4XHDD @ 1.2TB and 2XSSD @ 200GB).

If you want a quick overview on how to optimize Storage Tiered Spaces, make sure to check my previous blog post here.

How Storage Spaces Responds To a Faulty Disk?

Let’s open Server Manager and have a look.

In the Storage Pools tile of the File and Storage Services role in Server Manager, health status that requires attention is identified as illustrated below, a Yellow triangle with an exclamation mark!


You can use the following PowerShell cmdlets to identify the physical disk associated with the I/O error:

PS C:\>Get-PhysicalDisk |? { $_.ObjectId.Contains( $PhysicalDiskGUID ); }


PS C:\>Get-PhysicalDisk –friendlyName PhysicalDisk-1


Event Viewer is showing an error with Physical Disk 1.


You can use the following PowerShell cmdlet to get the physical disk Event Log:

PS C:\>Get-EventLog -LogName System -Source Disk


PS C:\>Get-Volume D | FT -AutoSize
PS C:\>Get-Volume D | Get-Partition | Get-Disk | Get-VirtualDisk | FT -AutoSize
PS C:\>Get-Volume D | Get-Partition | Get-Disk | Get-VirtualDisk | Get-StoragePool | FT -AutoSize
PS C:\>Get-Volume D | Get-Partition | Get-Disk | Get-VirtualDisk | Get-PhysicalDisk | FT –AutoSize


As you can see, the Storage Spaces sustained the failure of a single disk in a two-way mirrored space. The Volume is healthy, but the virtual disk and pool are in degraded state. (A two-way mirror will allow you to suffer the loss of a single disk with no problems while a three-way mirror will allow you to lose two disks).

How To Replace The Faulty Disk Without Interruption?

Now before I start with the replacement, I want to mention that I am using an old HP server that is not fully supported by Microsoft Storage Spaces. You may want to skip this step if you are using a certified Hardware/JBOD that is listed under Storage Spaces in the Windows Server Catalog.

For this reason, I need to open the Smart Array controller and delete the faulty logical disk drive, and then add a new one.StorageSpaces-DiskRepl10


Here is an important step, you need to create the new logical drive as RAID0 since Storage Spaces will not automatically detect the new drive.


Next, we need initialize the disk and add it to the Storage Pool.

You do not need to create a partition or format the new disk, leave it as unallocated.

PS C:\>Get-Disk
PS C:\>Get-Disk -Number 7 | Initialize-Disk -PartitionStyle GPT


PS C:\>Add-PhysicalDisk –StoragePoolFriendlyName StorageTieredPool1 -PhysicalDisks (Get-PhysicalDisk –CanPool $True)
PS C:\>Repair-VirtualDisk MirroredTieredSpace1


So after we added the new disk to the pool and we ran Repair-VirtualDisk cmdlet. The data will be rebalanced to the new disk (takes a while, in my case it took 2 hours to repair 1.2TB disk).


The old disk can either be retired or it can be completely removed from the pool.

PS C:\>Get-PhysicalDisk | ? OperationalStatus –eq “Lost Communication” | Set-PhysicalDisk –Usage Retired
PS C:\>Remove-PhysicalDisk -StoragePoolFriendlyName StorageTieredPool1 -PhysicalDisks (Get-PhysicalDisk | ? OperationalStatus -eq “Lost Communication” )


And here you go… Healthy Storage Space without interruption or data loss Smile


My wish list for the vNext release of Windows Server is to have auto-repair for the Virtual Disks as soon as you add a new disk to the Storage Pool.

Did you experience any issue with Storage Spaces after single HDD/SSD failure? please add a comment to this blog post and share your experiences.

Hope this helps,

Until then… N’joy!

Posted in Storage Spaces, Windows Server, Windows Server 2012 R2

What Do You Expect in Microsoft Virtual Machine Converter (MVMC) Release 3.0? #HyperV #MVMC

Hello Folks,

In a previous blog post I showed you on how to migrate VMware VMs To Hyper-V with MVMC 2.0.

The good news is that Microsoft announced the Microsoft Virtual Machine Converter (MVMC) 3.0 is coming out this fall 2014.

What is the biggest improvement:

Online Physical to Virtual Conversions and support for both physical servers and physical client OSs. Free download without dependency on System Center Smile.

Just so you understand, the MVMC never had P2V functionality, rather it was offered only in System Center 2008, 2012 and 2012 SP1 Virtual Machine Manager. Microsoft stated that P2V had been deprecated, but they were referring to the latest System Center 2012 R2 Virtual Machine Manager (SCVMM), which only offers Virtual-to-Virtual (V2V) like the current MVMC 2.0. With the MVMC 3.0 release coming up this fall, P2V will once again be available which will be a huge addition to conversion and migration capabilities.

Until then, stay tuned!


Posted in Hyper-V, MVMC

Do You Want More Compute For Your Hyper-V Servers? Address Your Demands with New HP ProLiant Gen9 Servers #HP #Proliant #HyperV

HP just announced a new portfolio of HP ProLiant Generation 9 (Gen9) Servers that will help customers and Hyper-V folks to reduce cost and complexity, accelerate IT service delivery and enable business growth. The new server portfolio advances HP’s vision for compute, the future of data center technology.

The new HP ProLiant Gen9 portfolio is a major delivery milestone in HP’s compute strategy, which addresses IT demands with a vast pool of processing resources that can be located anywhere, scaled to any workload and available at all times. The servers are optimized for convergence, cloud and software-defined environments.

Here are the details of what HP announced with the new Gen9 Portfolio:


HP Portfolio Gen9 Servers (Image: HP)

All these servers leverage the latest Intel® Xeon® E5-2600 v3 processors to offer up to 70 percent performance gains and a 36% increase in energy efficiency.

The typical specs:
–          Intel (Haswell) v3 processors supporting up to 18 cores :)
–          DDR4 memory with speeds up to 2.133 GHz
–          12Gb storage connectivity
–          20Gb Ethernet

The Smart Array controller is by default not on-board anymore. This means that the RAID controller is now like a FlexLOM Ethernet adapter an add-on card on the motherboard of the server. HP provides besides Smart Array controllers a FlexHBA’s which you need if you want to leverage Microsoft Storage Spaces.

HP Portfolio Gen9 2U Servers (Image: HP)

Here are the detailed specs for each model:


  HP ProLiant BL460c Gen9 Server

The world’s leading server blade, performance optimized for core IT workloads

The HP ProLiant BL460c Gen9 blade server delivers the right performance, scalability, economics and manageability through HP OneView, for the converged data center at the lowest cost, fastest time to value with latest innovations.

  • Up to 2 Intel® Xeon® E5-2600 v3 series processors with 4/6/8/10/12/14/16/18 Cores
  • Up to 16, DDR4 HP SmartMemory DIMM slots (512MB) with built-in intelligence for 33% better memory performance
  • 12Gb/s SAS HDD or SSD storage performance supported
  • SmartCache and Secure Encryption options available


HP ProLiant DL360 Gen9 Server

Dense performance for multi-workload compute in the data center

Dense and flexible high performance compute, packed in a dense 1U/2-socket rack design.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 4/6/8/10/12/14 Cores
  • HP DDR4 Smart Memory – (24) DDR4, (768GB max)
  • Choice of 4x1GbE embedded + FlexibleLOM
  • Standard HP Dynamic Smart Array B140i, choice of HP Flexible Smart Array or HP Smart HBA Controllers
  • Replaces DL360p Gen8


HP ProLiant DL380 Gen9 Server

The no-compromise data center standard for multi-workloads

“Future proof” design keeps up with your business needs, packed in a dense 2U/2-socket rack design.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 4/6/8/10/12/14/16/18 Cores
  • HP DDR4 Smart Memory – (24) DDR4, (768GB max)
  • 4x1GbE embedded + Choice of FlexibleLOM + Standup
  • Flexible options, like HP Universal Media Bay
  • Replaces DL380p Gen8 and DL380 G7


HP ProLiant DL160 Gen9 Server

Right sized performance and storage density

Essential Combination of performance, manageability and storage in a dense 1U/2-socket rack design.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 4/6/8/10/12 Cores
  • HP DDR4 Smart Memory (16) DDR4, (512GB max)
  • Embedded 2 x1GbE, FlexibleLOM
  • Up to three PCIe slots for IO expandability
  • Replaces DL360e Gen8/ DL160 Gen8


HP ProLiant DL180 Gen9 Server

The new standard for growing datacenter needs

Scalability and Performance to meet the new standard of growing data center, in a 2U/2-socket rack design.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 4/6/8/10/12 Cores
  • HP DDR4 SmartMemory 16 SFF / 12 LFF max, HDD/SSD
  • Embedded 2 x1GbE with optional Flexible LOM on riser
  • 6 PCIe 3.0 slots (3 + 3 FH/HL)
  • Replaces DL380e Gen8


HP ProLiant ML350 Gen9 Server

Performance with unmatched capacity and reliability

Availability, expandability and serviceability, a winning combination in a 5U/2 socket tower/rack design.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 4/6/8/10/12/14/16/18 Cores
  • HP DDR4 SmartMemory (24) DDR4, (768GB max)
  • Greater Expansion with 24 LFF/48 SFF
  • Greater I/O Expansion with 9 PCIe / 9 USB ports
  • Replaces ML350p Gen8 / ML350 G6


    HP ProLiant XL230a Server

Apollo 6000 System server, density optimized performance for scale-out workloads

Designed at rack-scale, the HP Apollo 6000 System starts with a modular 5U building block, a variety of compute, accelerator, storage, and networking options to meet your HPC and Service Provider workload needs.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 6/8/10/12/14/16 Cores
  • (16) DDR4, (512GB max), support for NVDIMM
  • 1GbE iLO port/server + choice of FlexibleLOM riser module


  HP ProLiant XL730fServer

Apollo 8000 System server for high performance computing workloads

The HP Apollo 8000 System is world’s first water-cooled supercomputer with dry-disconnect servers. This converged system has up to 144 2P Gen9 servers per rack for supercomputing workload needs

  • Up to 2 Intel® Xeon® E5-2600 v3 Series,10/12/14 Cores
  • (16) DDR4 per node, (256GB max), support for RDIMM
  • HP Apollo 8000 System Manager

More information on the new portfolio can be found here: HP ProLiant Generation 9 (Gen9) servers.

Enjoy your day!


Posted in HP, ProLiant

How To Log Off Remote Desktop User Sessions In Remote Desktop Services Via PowerShell? #RDS #VDI #PowerShell

Okay, this is not actually a Server virtualization related blog post – but still in the virtualization space of course, Session virtualization in Remote Desktop Services (RDS) formerly known as Terminal Services (TS) and purely about PowerShell. None the less – it is something that I use quite often when scripting RDS – so I thought I would post it here.

As you know the new BYOD (Bring Your Own Device) era is expanding number of devices every day, Operating Systems, and applications as well as the constant expectation that we all should be able to access vital information from anywhere anytime. Users can bring in whatever device they wish into work or work at home on their own personal device by using an RDP Client on that device and securely connecting with it.

You can get the latest Microsoft Remote Desktop Client App free for each platform here:

The simple fact that the desktop and applications we are providing to our users are now running on servers under our direct control, and when they are working on site or remotely, their virtual desktop/session is still in the data center. RDS in all its forms is then an ideal way of allowing a (BYOD) policy.

Now Microsoft® RDS includes two techniques for providing virtual desktops, Session virtualization and VDI based on a collection of Windows 8 or 8.1 virtual desktops. While Session virtualization uses far less hardware resources, it is based on a server OS, which can be less experience for our users and limit the applications we can offer using this technique. In the opposite side, VDI consumes more resources, but offers our users a first-class experience. VDI is also different from RemoteApp, which lets you deliver individual applications that run remotely on the server to users’ own local desktops. Where they can run side by side with local applications. There’s no right answer here which option you need to choose, it’s about what is right for the department or business unit that will use VDI.

More information about Remote Desktop Services can be found here.

If you used to work with RDS aka (TS) in previous Windows Server releases, you will notice a tremendous improvement in Windows Server 2012/R2 that makes the deployment of VDI faster and easier, by providing a new unified central experience. RDS previously required multiple administrative tools, but with Server 2012/R2, most of them were combined into a single management console that’s built into the new Server Manager that was introduced in Windows Server 2012 as showing in the following figure:PoolVDI-01

The new Server Manager central experience for Remote Desktop Services deployment. (Image: Charbel Nemnom)

Long story short, I am using Remote Desktop Services since Windows Server 2003/R2, which is end of support just a few months away, in between make sure you started planning the upgrade of your existing infrastructure to Windows Server 2012 R2.

Now back in Windows Server 2003/R2 and 2008/R2, If you need to control/shadow or Log Off a remote user session, we used to do the following as shown in below figures:



The Terminal Services experience Windows Server 2003/R2. (Image: Charbel Nemnom)



The Remote Desktop Services experience Windows Server 2008/R2. (Image: Charbel Nemnom)

In Windows Server 2012, Microsoft removed the Remote Control/Shadowing feature and restrict the Log Off feature in the UI by single user at a time Sad smile, in other words, you cannot select multiple users and Log them off at the same time as we used to do in Windows Server 2008/R2 and 2003/R2.


But in Windows Server 2012 R2, Microsoft brings back the feature called Session Shadowing, with which you’re able to monitor or take control of users’ active sessions. This was not available in Windows Server 2012, but Microsoft responded to input from customers who missed the feature Smile, however the Log Off feature still by single user at a time.


You can shadow a remote user session in Windows Server 2012 R2 in one of two ways:

  • You can use the Server Manager if you prefer a graphical interface, OR
  • You can use the command line if you prefer a text-based interface

In Server Manager, you can browse for the session collection in which the user whose session you want to control is active or if you know which collection it is, you can access it directly from the Collections section. You can select whether you want to control the session or just view it and also whether or not the user will receive a prompt.

At the command line on a computer running Remote Desktop Client version 8.1 or above, type the following command:

C:\>mstsc /v:<server name> /shadow:<session ID>

In case you’re wondering how you’re supposed to know the session ID? you can find it out by running the following PowerShell cmdlet (you must first import the Remote Desktop Module):

PS C:\>Import-Module RemoteDesktop
PS C:\>Get-RDUserSession

Now what about to Log Off more than one user at a time? we still missing this feature.

The answer is…

With PowerShell, of course:

Select Remote Session State and logs off the user sessions.

Select Remote Session State (Disconnected/Active/Idle/All) and logs off the user sessions.

File Name: RDSessionSupport.ps1
Author    : Charbel Nemnom
Version   : 1.0
Requires : PowerShell Version 3.0 or above
OS          : Windows Server 2012 or above with Remote Desktop Connection Broker Role

To provide feedback or for further assistance visit:

Run the script as administrator and select your desired choice.

Write-Host “======================================================”
Write-Host “”
Write-Host ”                            PLEASE SELECT YOUR CHOICE                              ”
Write-Host “”
Write-Host “======================================================”
Write-Host “”
Write-Host ” A.  End All Disconnected Remote User Sessions”
Write-Host ” B.  End All Active Remote User Sessions”
Write-Host ” C.  End All Idle Remote User Sessions”
Write-Host ” D.  End All Remote User Sessions”
Write-Host ” X.  Cancel and quit”
$choice = Read-Host “Enter Selection”

Switch ($choice) {
“A” {$RDSessions = Get-RDUserSession | Where-Object -Filter {$_.SessionState -eq ‘STATE_DISCONNECTED’} }
“B” {$RDSessions = Get-RDUserSession | Where-Object -Filter {$_.SessionState -eq ‘STATE_ACTIVE’} }
“C” {$RDSessions = Get-RDUserSession | Where-Object -Filter {$_.SessionState -eq ‘STATE_IDLE’} }
“D” {$RDSessions = Get-RDUserSession}
“X” {Exit}

If (!$RDSessions)
Write-Host “No Remote User Sessions found with Choice:” $choice
{ # Start Loop
Foreach ($RDSession in $RDSessions)
Invoke-RDUserLogoff -UnifiedSessionID $RDSession.SessionId -HostServer $RDSession.HostServer -Force
Write-Host “The user” $RDSession.UserName “is logged off from” $RDSession.HostServer “server”
} # End Loop
} # End If

Read-Host “Press Enter to Exit <—“

With above PowerShell script, the user will select which session state would like to log off, and then all sessions with the selected state will be logged off from all Remote Desktop Session Hosts (RDSH).


Sure enough there are different ways to accomplish the same result Just kidding, but nevertheless it has worked for me and I feel that it’s a much nicer than having to Log Off each user manually, so that’s that.

A couple of areas that could definitely be improved though, would have to select which user you want to Log Off, etc.

If you have more ideas and would like to add more options, please share in the comment below:

Hope this was helpful for you.

Until then, enjoy your day!


Posted in RDS, Remote Desktop Services

How To Deploy Free VMM Service Templates and Windows Azure Pack Gallery Resources #VMM #HyperV #SysCtr #SCVMM #WAP

Hello Folks,

As you are familiar with Microsoft® Azure Virtual Machines gallery resources in the public cloud, you can have a similar experience in your own private cloud with System Center Virtual Machine Manager and Windows Azure Pack.

The Windows Azure Pack is a collection of Windows Azure technologies available to Microsoft® customers on-premises for free. Once installed in your private cloud, the Windows Azure Pack integrates with System Center Suite and Windows Server to help provide a self-service portal for managing services such as websites, Virtual Machines, a portal for administrators to manage cloud resources, and a portal for tenants “customers” for self-service.

The feed of Windows Azure Pack Gallery Resources and VMM Service Templates is constantly being updated at the following URL:

How to deploy it?

1.  Download and Install the Microsoft Web Platform Installer 5.0 from here.

2.  Launch the Web Platform Installer.VMM-WAP-Temp01

3.  Select the Options link at the bottom right.VMM-WAP-Temp02

4.  Enter the Feed URL into the Custom Feeds field: 5.  Select the Add feed button.VMM-WAP-Temp046.  Select the OK button.

7.  You will now see a new Service Models link at the upper right of the Web Platform Installer UI.VMM-WAP-Temp05
8.  Select the Service Model you want to download (SCVMM Service Templates or Gallery Resources).

SCVMM Service Templates:VMM-WAP-Temp06

Windows AZURE Pack Gallery Resources:VMM-WAP-Temp07

9.  Select the Add button next to whichever Service Model you would like to download (VMM or WAP).VMM-WAP-Temp08

10. Select the Install button.

11. Select the I Accept button.VMM-WAP-Temp10

12. Select the Continue button.VMM-WAP-Temp11

13. Select the Finish button.

14. Last but not least, Windows Explorer window will open, displaying the contents of the Service Model.
Service Models are extracted into your %SystemDrive% folder, according to both types:
Gallery Resources – %SystemDrive%\GalleryResources\<resourcename>
     SCVMM Service Templates – %SystemDrive\SCVMM Service Templates\<resourcename>
     Follow the directions in the Service Model Readme file that ships with each Gallery Item to complete this procedure.
The Readme file includes the values specific step by step to that particular item.

Next we will move into the import process of the Template.

Copy the VMM Service Template directory into your VMM library server, launch the VMM Console and then refresh the library.VMM-WAP-Temp16

From the Virtual Machine Manager console, launch the import template wizard.



On the Select Package page, click browse, navigate to the location where the service template is saved in my case (Domain Controller Windows Server 2012.1.0), then select the .XML template, click open and then click next in the import wizard.VMM-WAP-Temp17

Note: On the Configure References page, verify that all resources are mapped correctly for you environment. For any reference which is not mapped correctly (or contains a Current Mapping of clip_image002 None), click the clip_image004 icon next to each resource and choose an appropriate resource in your environment in which to map the references:VMM-WAP-Temp18


Complete the import wizard and verify that the template has imported successfully:VMM-WAP-Temp20


Open the service template in the designer and modify any applicable settings to confirm to your standards, for example:
– Virtual machine hardware configuration.
– Computer name pattern.
– Product Key, etc…

Here you go a DC service template instance is ready to be deployed.

Enjoy your weekend!


Posted in System Center, Virtual Machine Manager, Windows Azure Pack

Sponsor – ALTARO

Sponsor – StarWind


Thanks for visiting!

Copyright Warning

All material is copyrighted by me or by its respective owners. To use any of it, full or in part, you must contact me or owner of the material. You may quote few paragraphs from this blog only if you link to the original blog post.

Follow me on Twitter


Get every new post on this blog delivered to your Inbox.

Join other followers: