diff --git a/README.md b/README.md index 0c73412..9d13afe 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ Small tools needed to solve immediate tasks independently or as part of a projec * [`procutil`.py](https://git.hmp.today/pavel.muhortov/utils#procutil-py) * [`sendmail`.py](https://git.hmp.today/pavel.muhortov/utils#sendmail-py) * [`simplewc`.py](https://git.hmp.today/pavel.muhortov/utils#simplewc-py) +* [`hvswitch`.cmd](https://git.hmp.today/pavel.muhortov/utils#hvswitch-cmd) ____ ## `camsutil` **Description:** Creation of a request to the camera API based on the prepared template @@ -256,3 +257,21 @@ chmod u+x ./simplewc.py ``` ____ +## `hvswitch`.cmd +**Description:** Microsoft Hyper-V switch on/off +**Dependencies:** Windows with Hyper-V (tested version Windows 10 Pro), + + +| PARAMETERS | DESCRIPTION | DEFAULT| +|-------------|-------------|--------| +|**[qn]**|execution without pauses|**REQUIRED 1 POSITION**| +|**[y]**|enable Hyper-V, if it off|**REQUIRED 2 POSITION**| +|**[n]**|disable Hyper-V, if it on|**REQUIRED 2 POSITION**| + +Example usage in terminal: +```shell +.\hvswitch.cmd qn y +``` + +____ + diff --git a/hvswitch.cmd b/hvswitch.cmd new file mode 100644 index 0000000..dc91f4e --- /dev/null +++ b/hvswitch.cmd @@ -0,0 +1,65 @@ +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 + +-------------------------------------------------- + +: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%