67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
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
 | 
						|
	openfiles >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%
 |