How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (2024)

The best combination of power and simplicity for controlling Hyper-V is its PowerShell module. The module’s installable component is distinct from the Hyper-V role, and the two are not automatically installed together. Even if you have installed the free Hyper-V Server product that ships with the Hyper-V role already enabled, you’ll still need to install the PowerShell module separately. This short guide will explain how to install that module and understand its basic structure. If you need to use directly control Windows Server 2012/R2 or Hyper-V Server 2012/R2 using the PowerShell module as it ships in Windows 10/Windows Server 2016 or 2019, instructions are at the very end of this post.

How to Install the Hyper-V PowerShell Module with PowerShell

The quickest way to install the module is through PowerShell. There are several ways to do that, depending on your operating system and your goal.

Using PowerShell to Install the Hyper-V PowerShell Module in Windows 10

All of the PowerShell cmdlets for turning off and on Windows features and roles are overlays for the Deployment Image Servicing and Management (DISM) subsystem. Windows 10 does include a PowerShell module for DISM, but it uses a smaller cmdlet set than what you’ll find on your servers. The server module’s cmdlets are simpler, so I’m going to separate out the more involved cmdlets into the Windows 10 section. The cmdlets that I’m about to show you will work just as well on a server operating system as on Windows 10, although the exact names of the features that you’ll use might be somewhat different. All cmdlets must be run from an elevated PowerShell prompt.

As I mentioned in the preamble to this section, there a few different ways that you can enable the Hyper-V PowerShell module. There is only a single cmdlet, and you will only need to use it to enable a single feature. However, the module appears in a few different features, so you’ll need to pick the one that is most appropriate to you. You can see all of the available options like this:

Get-WindowsOptionalFeature -Online -FeatureName *hyper-v* | select DisplayName, FeatureName

The reason that you see so many different objects is that it’s showing a flat display of the hierarchical tree that you’d get if you opened the Windows Features window instead. Unfortunately, this cmdlet does not have a nicely formatted display (even if you don’t pare it down with any filters), so it might not be obvious. Compare the output of the cmdlet to the Windows Features screen:

How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (1)

Windows 10 Hyper-V Features

You have three options if you want to install the PowerShell Module on Windows 10. The simplest is to install only the module by using its feature name. Installing either of the two options above it (Hyper-V Management Tools or the entire Hyper-V section) will include the module. I trimmed off the feature name in the images above, so all three possibilities are shown below:

# Install only the PowerShell moduleEnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell# Install the Hyper-V management tool pack (Hyper-V Manager and the Hyper-V PowerShell module)Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Tools-All# Install the entire Hyper-V stack (hypervisor, services, and tools)Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

Tab completion will work for everything except the specific feature name. But, don’t forget that copy/paste works perfectly well in a PowerShell window (click/drag to highlight, [Enter] to copy, right-click to paste). You can use the output from Get-WindowsOptionalFeature so that you don’t need to type any feature names.

It’s fine to install a higher-level item even if some of its subcomponents are already installed. For example, if you enabled the Hyper-V platform but not the tools, you can enable Microsoft-Hyper-V-All and it will not hurt anything.

TheEnable-WindowsOptionalFeature cmdlet does not have a ComputerName parameter, but it can be used in explicit PowerShell Remoting.

Using PowerShell to Install the Hyper-V PowerShell Module in Windows Server or Hyper-V Server 2012, 2016 & 2019

The DISM PowerShell tools on the server platforms are a bit cleaner to use than in Windows 10. If you’d like, the cmdlets shown in the Windows 10 section will work just as well on the servers (already the feature names are different). The cmdlets shown in this section will only work on server SKUs. They must be run from an elevated prompt.

Get-WindowsFeature *hyper-v*

Ordinarily, I don’t show cmdlets using positional parameters, but I wanted you to see how easy this cmdlet is to use. The full version of the shown cmdlet is Get-WindowsFeature -Name *hyper-v*. Its output looks much nicer than Get-WindowsOptionalFeature:

How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (2)

Server Hyper-V Features

There is a difference, though. Under Windows 10, all the items live under the same root. In the Windows SKUs, Hyper-V is under the Roles branch but all of the tools are under the Features branch. The output indentation, when filtered, is misleading.

The Server SKUs have an Install-WindowsFeature cmdlet. Its behavior is similar to Enable-WindowsOptionalFeature, but it is not quite the same. Enabling the root Hyper-V feature will not automatically select all of the tools (as you might have already found out). These are all of the possible ways to install the Hyper-V PowerShell Module using PowerShell on a Server product:

# Install only the PowerShell moduleInstall-WindowsFeature -Name Hyper-V-PowerShell# Install Hyper-V Manager and the PowerShell module (HVM only available on GUI systems)Install-WindowsFeature -Name RSAT-Hyper-V-Tools# Install the Hyper-V hypervisor and all tools (method #1)Install-WindowsFeature -Name Hyper-V -IncludeManagementTools# Install the Hyper-V hypervisor and all tools (method #2)Install-WindowsFeature -Name Hyper-V, RSAT-Hyper-V-Tools

Tab completion will work for everything except the specific feature name. But, don’t forget that copy/paste works perfectly well in a PowerShell window (click/drag to highlight, [Enter] to copy, right-click to paste). You can use the output from Get-WindowsFeature so that you don’t need to type any feature names.

If the Hyper-V role is already enabled, you can still use either of the last two options safely. If the Hyper-V role is not installed and you are using one of those options, the system will need to be restarted. If you like, you can include the -Restart parameter and DISM will automatically reboot the system as soon as the installation is complete.

The Install-WindowsFeature cmdlet does have a ComputerName parameter, so it can be used with implicit PowerShell Remoting to enable the feature on multiple computers simultaneously. For example, use -ComputerName svhv01, svhv02, svhv03, svhv04 to install the feature(s) on all four of the named hosts simultaneously. If you are running your PowerShell session from a Windows 10 machine that doesn’t have that cmdlet, you can still use explicit PowerShell Remoting.

How to Install the Hyper-V PowerShell Module Using the GUI

It seems a bit sacrilegious to install a PowerShell module using a GUI, and it certainly takes longer than using PowerShell, but I suppose someone has a reason.

Using the GUI to Install the Hyper-V PowerShell Module on Windows 10

Follow these steps in Windows 10:

  1. Right-click on the Start button and click Programs and Features.

    How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (4)

    Windows 10 Start-X

  2. In the Programs and Features dialog, click Turn Windows features on or off

    How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (5)

    Windows 10 Programs and Features

  3. In the Windows Features dialog, check the box for Hyper-V Module for Windows PowerShell (and anything else that you’d like) and click OK.

    How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (6)

    Windows 10 PS Module Selection

  4. The dialog will signal completion and the module will be installed.

Using Server Manager to Install the Hyper-V PowerShell Module on Windows Server or Hyper-V Server 2012, 2016 & 2019

Server Manager is the tool to use for graphically adding roles and features on Windows Server and Hyper-V Server systems. Of course, you’re not going to be able to directly open Server Manager on Hyper-V Server systems, but you can add a system running Hyper-V Server to the console of any same-level system running a GUI edition of Windows Server (security restrictions apply). The RSAT package for Windows 10 includes Server Manager and can remotely control servers (security restrictions apply there, as well). While Server Manager can be remotely connected to multiple systems, it can only install features on one host at a time.

To use Server Manager to enable Hyper-V’s PowerShell module, open the Add Roles and Features wizard and proceed through to the Features page. Navigate to Remote Server Administration Tools -> Role Administration Tools -> Hyper-V Management Tools and check Hyper-V Module for Windows PowerShell. Proceed through the wizard to complete the installation.

How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (7)

Windows Server PS Module Selection

The module will be immediately available to use once the wizard completes.

A Brief Explanation of the Hyper-V PowerShell Module

Once installed, you can find the module’s files at C:WindowsSystem32WindowsPowerShellv1.0ModulesHyper-V. Its location will ensure that the module is automatically loaded every time PowerShell starts up. That means that you don’t need to use Import-Module — you can start right away with your scripting.

If you browse through and look at the files a bit, you might notice that the PowerShell module files reference a .DLL. This means that this particular PowerShell module is a binary module. Microsoft wrote it in a .Net language and compiled it. Its cmdlets will run faster than they would in a text-based module, but you won’t be able to see how it does its work (at least, not by using any sanctioned methods).

Connecting to Windows/Hyper-V Server 2012, 2016 & 2019 from PowerShell in Windows 10/Server 2016 & 2019

If you are using Windows 10 and Windows/Hyper-V Server 2016 or 2019, there’s an all-new version 2.0.0 of the Hyper-V PowerShell module. That’s a good thing, right? Well, usually. The thing is, the 2012 and 2012 R2 versions aren’t going away any time soon, and we still need to control those. Version 2 of the PowerShell module will throw an error when you attempt to control these down-level systems. The good news is that you can work around this limitation fairly easily. If you browsed the folder tree on one of these newer OS releases, you may have noticed that there is a 1.1 folder as well as a 2.0.0 folder. The earlier binary module is still included!

So, does that mean that you can happily kick off some scripts on those “old” machines? Let’s see:

How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (8)

Error Using Hyper-V PS Module on Downlevel Target

The error is: “Get-VM : The Hyper-V module used in this Windows PowerShell session cannot be used for remote management of the server ‘SVHV2’. Load a compatible version of the Hyper-V module, or use Powershell remoting to connect directly to the remote server. For more information, see http://go.microsoft.com/fwlink/p/?LinkID=532650.

What to do?

The answer lies in a new feature of PowerShell 5, which fortunately comes with these newer OSs. We will first get a look at what our options are:

Get-Module -Name Hyper-V -ListAvailable

How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (9)

Available Hyper-V Modules

You could run this without ListAvailable to determine which, if any, version is already loaded. You already know that PowerShell auto-loads the module and, if you didn’t already know, I’m now informing you that it will always load the highest available version unless instructed otherwise. So, let’s use the new RequiredVersion parameter to instruct it otherwise:

Remove-Module Hyper-VImport-Module Hyper-V -RequiredVersion 1.1Get-Module Hyper-V

The results of this operation:

How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (10)

Successfully Controlling Down-level Hyper-V Hosts in PowerShell

Is this good? Well, it’s OK, but not great. Popping a module in and out isn’t the worst thing in the world, but can you imagine scripting that to work against hosts of various levels? While possible, the experience would certainly be unpleasant. If you’re going to interactively control some down-level Hyper-V hosts, this approach would work well enough. For serious scripting work, I’d stick with the WMI/CIM cmdlets and explicit remoting.

If you have any questions about using the Hyper-V PowerShell module including installation, optimization or anything else, let me know in the comments below and I’ll help you out!

This blog was originally published on July 2017 but has been updated with corrections and new content to be relevant from March 2020.

How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (11)

Share this post

How to Install the Hyper-V PowerShell Module (updated for Windows Server 2019) (2024)
Top Articles
Basel, Switzerland Travel Weather and Climate: When to Go
How to Persuade Someone to Save Money: 10 Steps (with Pictures)
Somboun Asian Market
122242843 Routing Number BANK OF THE WEST CA - Wise
Week 2 Defense (DEF) Streamers, Starters & Rankings: 2024 Fantasy Tiers, Rankings
The Daily News Leader from Staunton, Virginia
Www.politicser.com Pepperboy News
Prosper TX Visitors Guide - Dallas Fort Worth Guide
Nation Hearing Near Me
Hallowed Sepulchre Instances & More
Western Razor David Angelo Net Worth
Tamilblasters 2023
Ukraine-Russia war: Latest updates
Mills and Main Street Tour
Truck Trader Pennsylvania
Palm Coast Permits Online
Costco Gas Foster City
Craigslist Toy Hauler For Sale By Owner
Nine Perfect Strangers (Miniserie, 2021)
ZURU - XSHOT - Insanity Mad Mega Barrel - Speelgoedblaster - Met 72 pijltjes | bol
Atdhe Net
Purdue 247 Football
Governor Brown Signs Legislation Supporting California Legislative Women's Caucus Priorities
How Long After Dayquil Can I Take Benadryl
Surplus property Definition: 397 Samples | Law Insider
Koninklijk Theater Tuschinski
Piri Leaked
Cb2 South Coast Plaza
Cable Cove Whale Watching
Craigslist Efficiency For Rent Hialeah
His Only Son Showtimes Near Marquee Cinemas - Wakefield 12
Was heißt AMK? » Bedeutung und Herkunft des Ausdrucks
How to Use Craigslist (with Pictures) - wikiHow
Puretalkusa.com/Amac
Cheap Motorcycles Craigslist
Etowah County Sheriff Dept
Crystal Mcbooty
Bimmerpost version for Porsche forum?
Midsouthshooters Supply
7543460065
Planet Fitness Santa Clarita Photos
MSD Animal Health Hub: Nobivac® Rabies Q & A
How Much Is 10000 Nickels
Costco Gas Foster City
What is 'Breaking Bad' star Aaron Paul's Net Worth?
Trending mods at Kenshi Nexus
The Quiet Girl Showtimes Near Landmark Plaza Frontenac
Acuity Eye Group - La Quinta Photos
Zadruga Elita 7 Live - Zadruga Elita 8 Uživo HD Emitirani Sat Putem Interneta
Wera13X
Bones And All Showtimes Near Emagine Canton
7 Sites to Identify the Owner of a Phone Number
Latest Posts
Article information

Author: Foster Heidenreich CPA

Last Updated:

Views: 6146

Rating: 4.6 / 5 (76 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Foster Heidenreich CPA

Birthday: 1995-01-14

Address: 55021 Usha Garden, North Larisa, DE 19209

Phone: +6812240846623

Job: Corporate Healthcare Strategist

Hobby: Singing, Listening to music, Rafting, LARPing, Gardening, Quilting, Rappelling

Introduction: My name is Foster Heidenreich CPA, I am a delightful, quaint, glorious, quaint, faithful, enchanting, fine person who loves writing and wants to share my knowledge and understanding with you.