@echo off if "%1" == "" ( echo Usage: NvContainerRecovery {Service Name} goto NvContainerRecoveryEnd ) set __LOG_FILE=NvContainerRecovery.log if not "%2" == "" set __LOG_FILE=C:\ProgramData\NVIDIA\NvContainerRecovery%1.log set __RECOVERY_FILE=%LOCALAPPDATA%\NvContainerRecovery%1.reg echo Create recovery registry file %__RECOVERY_FILE% > %__LOG_FILE% echo REGEDIT4 > %__RECOVERY_FILE% echo. >> %__RECOVERY_FILE% echo [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\NVIDIA Corporation\NvContainer\%1] >> %__RECOVERY_FILE% echo "Recovery"=dword:00000001 >> %__RECOVERY_FILE% echo. >> %__RECOVERY_FILE% echo [HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\NvContainer\%1] >> %__RECOVERY_FILE% echo "Recovery"=dword:00000001 >> %__RECOVERY_FILE% type %__RECOVERY_FILE% >> %__LOG_FILE% echo Import %__RECOVERY_FILE% in registry >> %__LOG_FILE% regedit.exe /s %__RECOVERY_FILE% echo. >> %__RECOVERY_FILE% echo Starting service %1 >> %__LOG_FILE% net start %1 >> %__LOG_FILE% 2>&1 if %ERRORLEVEL% EQU 0 goto NvContainerRecoveryEnd rem In case of failure, remove recovery setting from registry echo. >> %__RECOVERY_FILE% echo Prepare rollback registry file %__RECOVERY_FILE% >> %__LOG_FILE% echo REGEDIT4 > %__RECOVERY_FILE% echo. >> %__RECOVERY_FILE% echo [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\NVIDIA Corporation\NvContainer\%1] >> %__RECOVERY_FILE% echo "Recovery"=- >> %__RECOVERY_FILE% echo. >> %__RECOVERY_FILE% echo [HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\NvContainer\%1] >> %__RECOVERY_FILE% echo "Recovery"=- >> %__RECOVERY_FILE% type %__RECOVERY_FILE% >> %__LOG_FILE% echo Import %__RECOVERY_FILE% in registry >> %__LOG_FILE% regedit.exe /s %__RECOVERY_FILE% :NvContainerRecoveryEnd if exist "%__RECOVERY_FILE%" ( echo. >> %__RECOVERY_FILE% echo Delete registry file %__RECOVERY_FILE% >> %__LOG_FILE% del /Q %__RECOVERY_FILE% ) set __RECOVERY_FILE= set __LOG_FILE=