J'aime beaucoup le support Hyper-V dans Windows 8, cependant, il existe des situations dans lesquelles je dois désactiver Hyper-V pour pouvoir exécuter des applications qui n'aiment pas être exécutées même dans la partition racine de l'environnement virtualisé. .
Ce que je suis en train de faire, c’est de désactiver complètement la fonctionnalité à partir de la boîte de dialogue "Ajouter ou supprimer des fonctionnalités de Windows" et de la redémarrer, en la réactivant si nécessaire.
J'aimerais savoir s’il existe une meilleure façon de le faire, mais c’est même un raccourci qui me permettrait de double-cliquer et d’ajouter ou de supprimer la fonctionnalité pour moi et de la relancer (je suppose cela peut être possible avec un script PowerShell).
Clause de non-responsabilité : Je ne l’ai pas fait pour supprimer une fonctionnalité ET, dernier avertissement, il y aura probablement une multitude de mises à jour Windows Update à installer chaque fois que vous l’activez à nouveau.
Cela dit, à partir d'une invite de commande élevée:
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
et
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
Voici à quoi ressemble la commande enable sur mon PC sur lequel Hyper-V est déjà activé et en cours d'exécution:
> dism/Online/enable-feature: Microsoft-Hyper-V/All
Outil de gestion et de maintenance des images de déploiement Version: 6.2.9200.16384
Version de l'image: 6.2.9200.16384
Activation de fonctionnalité (s) [=========================== 100.0% =============== ==========] L'opération s'est terminée avec succès.
Lors de l'activation de la fonctionnalité puisqu'il s'agit d'Hyper-V, il peut vous demander de redémarrer et de relancer la commande. Cela semble vaguement familier. En d'autres termes, vous pourriez devoir redémarrer deux fois. Mais peut-être que cela ne vous le fera pas puisque Hyper-V était déjà activé sur cette machine.
C'est une vieille réponse, mais par souci d'exhaustivité et parce que je savais qu'il y avait une meilleure façon que le meilleur résultat.
A partir d'une invite de commande élevée:
bcdedit /set hypervisorlaunchtype off
désactiver l'hyperviseur, et:
bcdedit /set hypervisorlaunchtype auto
pour le réactiver (valeur par défaut).
Bien sûr, il faut toujours redémarrer.
bcdedit /copy {default} /d "No Hypervisor"
"The entry was successfully copied to {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}."
bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} hypervisorlaunchtype off
Vous pouvez utiliser Hyper-V Switch qui utilise essentiellement la méthode bcdedit déjà décrite ici, mais y ajoute une interface graphique simple en un clic. Il vous indique l'état de la configuration actuelle, vous permet d'activer ou de désactiver Hyper-V et redémarre l'ordinateur. J'ai créé ce petit outil et il fonctionne sur mon ordinateur Windows 10.
Powershell est également possible, en utilisant DISM encapsulé en tant que cmdlets PS, et on peut lire les paramètres avant de procéder à la modification.
//Test
PS> Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
//Turn off
PS> Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
//Turn on
PS> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All
Refs
J'ai créé un script PowerShell pour aider à activer/désactiver Hyper-V. Cela vérifie l'état pour ne pas redémarrer si vous êtes déjà dans l'état souhaité:
param([string]$state='Off')
'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
Restart-Computer
} Else {
'Error setting state'
Start-Sleep -s 5
}
} Else {
'Hypervisor launch type is already ' + $state
Start-Sleep -s 5
}
}
}
}
Créez ensuite deux raccourcis sur votre bureau. Cible "Hyper-V désactivé":
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\SetHyper-V.ps1 -state Off
et cible "Hyper-V sur":
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\SetHyper-V.ps1 -state Auto`