私はWindows 8でのHyper-Vのサポートがとても好きですが、仮想化環境のルートパーティションでも実行されたくないアプリを実行するためにHyper-Vを無効にする必要がある状況がいくつかあります。 。
現在行っているのは、[ウィンドウの機能の追加と削除]ダイアログからその機能を完全に無効にして再起動し、必要に応じて再度有効にすることです。
これを実行するためのよりよい方法があるかどうかを知りたいのですが、ダブルクリックして実際に機能を追加または削除して再起動するショートカットでもあります(私は思います)これはPowerShellスクリプトで可能です。
免責事項:機能を削除するためにこれを行ったことはありません。最後の注意点として、すべてのWindows Updateアップデートをインストールするための膨大な数のアップデートがあるでしょうもう一度有効にします。
それを言って、昇格したコマンドからプロンプト:
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
そして
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
これは、Hyper-Vがすでに有効になって実行されている私のPCでenableコマンドを実行した場合の外観です。
> dism/Online/enable-feature:Microsoft-Hyper-V /すべて
配置イメージサービスおよび管理ツールバージョン:6.2.9200.16384
画像バージョン:6.2.9200.16384
機能を有効にする[======================== 100.0%================ ==========]操作は正常に完了しました。
Hyper-Vなのでこの機能を有効にすると、再起動してコマンドを再実行するように求められることがあります。それは漠然と慣れているようです。つまり、2回リブートしなければならなくなる可能性があります。そのマシンではすでにHyper-Vが有効になっているので、それはあなたにはできないかもしれません。
これは古い答えですが、完全性のためであり、そして私が一番上の結果より良い方法があることを知っていたので。
昇格したコマンドからプロンプト:
bcdedit /set hypervisorlaunchtype off
ハイパーバイザーを無効にします。
bcdedit /set hypervisorlaunchtype auto
再度有効にします(デフォルト値)。
もちろん再起動が必要です。
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
PSコマンドレットとしてラップされたDISMを使用してPowerShellも可能で、変更を行う前にまず設定を読むことができます。
//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
参照
あなたは Hyper-Vスイッチ を使うことができます。これは基本的にここで既に説明したbcdeditメソッドを使いますが、それに単純なワンクリックGUIを重ねます。現在の設定状態が表示され、Hyper-Vを有効または無効にしてコンピュータを再起動することもできます。私はこの小さなツールを作りました、そしてそれは私のWindows 10コンピュータで動作します。
Hyper-Vを有効/無効にするためのPowerShellスクリプトを作成しました。これは状態をチェックするので、すでに目的の状態になっている場合は再起動しません。
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
}
}
}
}
次に、デスクトップに2つのショートカットを作成します。 "Hyper-V Off" Target:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\SetHyper-V.ps1 -state Off
および「Hyper-V On」ターゲット
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\SetHyper-V.ps1 -state Auto`