diff --git a/pxswitch.cmd b/pxswitch.cmd new file mode 100644 index 0000000..8838fee --- /dev/null +++ b/pxswitch.cmd @@ -0,0 +1,66 @@ +pushd "%~dp0" +@echo off +goto :Start + +-------------------------------------------------- +Microsoft Hyper-V switch on/off + +Positional parameters: + [1] qn - execution without pauses + [2] y - enable Hyper-V, if it off + n - disable Hyper-V, if it on + +Administrator rights required +-------------------------------------------------- + +:Start + set choice=%~2 + +:Admin_Check + net session >nul 2>&1 + if %errorLevel% == 0 ( + set code=0 + ) else ( + set code=5 + cls + echo Restart this as Administrator! + goto :Exit + ) + +:HV_Check + bcdedit /enum | FINDSTR /IL "hypervisorlaunchtype" | FINDSTR /IL "auto" + if %errorLevel% EQU 0 ( + set state=auto + ) else ( + set state=off + ) + +:HV_Choice + cls + if "%choice%" EQU "y" ( + if "%state%" EQU "auto" goto :Exit + goto :HV_enable + ) + if "%choice%" EQU "n" ( + if "%state%" NEQ "auto" goto :Exit + goto :HV_disable + ) + set /p choice= Do you need a Hyper-V enabled? [y or no]: + goto :HV_Choice + +:HV_enable + echo Hyper-V enabled... + bcdedit /set hypervisorlaunchtype auto + shutdown -r -f -t 5 -c "After 5 seconds, the computer will restart" + goto :Exit + +:HV_disable + echo Hyper-V disabled... + bcdedit /set hypervisorlaunchtype off + shutdown -r -f -t 5 -c "After 5 seconds, the computer will restart" + goto :Exit + +:Exit +if "%~1" NEQ "qn" pause +popd +exit %code%