Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I really like the Hyper-V support in Windows 8, however, there are some situations in which I need to disable Hyper-V in order to run some apps which don't like to be executed even in the root partition of the virtualized environment.
What I've been currently doing is disabling the feature completely from the "Add or remove windows features" dialog and restarting, enabling it again when needed.
I would like to know if there's any better way to do this that comes to mind, it could even be a shortcut that i could double-click and will actually add or remove the feature for me and restart (I guess this may be possible with a PowerShell script).

share|improve this question
The method your using is the best and only supported method. – Ramhound Jan 22 '13 at 17:29
@Ramhound You can use dism.exe to enable features from the command line. That's how we automate installing .NET 3.5 on Windows 8, for example. In theory you can disable features that way too, but I haven't tried it. – Mark Allen Jan 22 '13 at 20:05
up vote 38 down vote accepted

Disclaimer: I haven't done this for removing a feature, AND as a final caveat there's probably going to be a slew of Windows Update updates to install every time you enable it again.

Having said that, from an elevated command prompt:

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V


dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

Here's what running the enable command looks like on my PC, which already has Hyper-V enabled and running:

>dism /Online /enable-feature:Microsoft-Hyper-V /All

Deployment Image Servicing and Management tool Version: 6.2.9200.16384

Image Version: 6.2.9200.16384

Enabling feature(s) [==========================100.0%==========================] The operation completed successfully.

When enabling the feature since it's Hyper-V it might ask you to reboot and run the command again. That seems vaguely familiar. You could wind up having to reboot twice, in other words. But maybe it won't do it to you since that machine already had Hyper-V enabled before.

share|improve this answer
Thanks!, it worked like a charm. It did restart twice but I don't think there's a way past that. Also, it could be argued that its not that much of an improvement over going to the windows features screen but once left in the desktop or pinned to the start screen it surely is for lazy people like myself. – Fredy Treboux Jan 24 '13 at 0:57
Sure! I'm glad it worked. Yeah normally the command line stuff is used to set up machines initially, so that way if you need to install .NET 3.5, AND Hyper-V, AND a bunch of other stuff, you can do it completely automatically. – Mark Allen Jan 24 '13 at 4:21
You might want to use /NoRestart in a non-interactive setting (when calling from a script). – krlmlr Jul 7 '15 at 8:44

This is an old answer but for the shake of completeness and because I knew there was a better way than the top result. From an elevated command prompt:

bcdedit /set hypervisorlaunchtype off

to disable hypervisor, and:

bcdedit /set hypervisorlaunchtype auto

to reenable it (default value).

Of course it still requires restart.

share|improve this answer
This is the way to go if you develop windows phone apps on a microsoft surface pro 3 (so you need hyper-v), but you want connected standby to work whenever you're not actively developing (as of late 2014, connected standby is not supported when the hypervisor is running). – Chris Nov 17 '14 at 20:25
Just to post an update as I came here looking for the above commands again (To run VM Ware Player temporarily) - Windows 10 supports Hyper-V and Connected Standby at the same time in the Tech Preview and I can only assume will keep the feature through to RTM. Seems to work well in the preview on my Surface Pro 3 so far. – Dan Harris Mar 27 '15 at 1:53

You could create two boot entries so you could choose to decide to boot OS system with or without Hyper-V.

  1. Type the following in the command prompt:
bcdedit /copy {default} /d "No Hypervisor"
  1. It says:
"The entry was successfully copied to {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}."
  1. Then type the following command:
bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} hypervisorlaunchtype off
share|improve this answer
I've seen this now and it seems good! But havent had the time to try it myself yet. – Fredy Treboux Sep 17 '15 at 16:39
Just a note: if on Windows 10, you have have to use {current}. Just run bcdedit to check. Also, it doesn't want to work in PowerShell, for anyone who tried it. – dotbat Sep 28 '15 at 12:46

Hit the Windows Key and type “windows features” Hit the Windows Key + W combo to bring up the Windows Settings panel of the Start Screen. Click on Turn Windows features on or off When the Turn Windows features on or off dialog appears, look for Hyper-V and deselect it Click OK Restart your computer when prompted Install VMware Workstation Enable Hyper-V again through the Turn Windows features on or off dialog Restart your computer

share|improve this answer
I installed vs2013 in w8.1 and apparently it installed hyper v making my vbox not work. Thanks for a good permanent answer. – MvcCmsJon Dec 14 '13 at 3:24

Powershell is also possible, using DISM wrapped as PS cmdlets, and one can read the settings first before doing the change. [1] //Test PowerShell> Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All //Turn off PowerShell> Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All //Turn on PowerShell> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All

Refs [1] Powershell seen in this 2014-03 post which summarizes all options, ; MS Doc tell about the Get-WindowsOptionalFeature option,

[2]The Boot Entry Config Data edit (BECD) can also Read (/export) settings, per and other Doc

share|improve this answer

I made a PowerShell script to help enable/disable Hyper-V. This checks the state so you don't reboot if you are already in the desired state:

'Set Hyper-V ' + $state
$lines = bcdedit
ForEach($line in $lines) {
    $pos = $line.IndexOf(' ')
    If($pos -gt 0) {
        $prompt = $line.Substring(0, $pos)
        $curstate = $line.Substring($pos).Trim()
        If($prompt -eq 'hypervisorlaunchtype') {
            '[' + $prompt + '] = [' + $curstate + ']'
            If($curstate -ne $state) {
                'Setting hypervisorlauchtype to ' + $state
                $result = bcdedit /set hypervisorlaunchtype $state
                'Result = [' + $result + ']'
                If($result -eq 'The operation completed successfully.') {
                    'Restarting in two seconds'
                    Start-Sleep -s 2
                } Else {
                    'Error setting state'
                    Start-Sleep -s 5
            } Else {
                'Hypervisor launch type is already ' + $state
                Start-Sleep -s 5

Then create two shortcuts on your desktop "Hyper-V Off" Target:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\SetHyper-V.ps1 -state Off

and "Hyper-V On" Target:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\SetHyper-V.ps1 -state Auto`
share|improve this answer

You can use Hyper-V Switch that basically employs the bcdedit method already described here but puts a simple one-click GUI over it. It shows you the current configuration state and lets you enable or disable Hyper-V and reboots the computer, too. I’ve made this little tool and it works on my Windows 10 computer.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.