Merge pull request #1912 from XhmikosR/bat

Rename disable-dnscache-service-win to bat and minor tweaks
This commit is contained in:
Steven Black 2022-03-07 08:08:35 -05:00 committed by GitHub
commit b04eb1eb3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 51 deletions

View File

@ -0,0 +1,43 @@
@echo off
title Disable DNS Cache Service
:: Check if we are an administrator. If not, exit immediately.
:: BatchGotAdmin
:: Check for permissions
if "%PROCESSOR_ARCHITECTURE%" equ "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) else (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)
:: If the error flag set, we do not have admin rights.
if %ERRORLEVEL% neq 0 (
echo Requesting administrative privileges...
goto UACPrompt
) else (
goto gotAdmin
)
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%TEMP%\getadmin.vbs"
set params= %*
echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params:"=""%", "", "runas", 1 >> "%TEMP%\getadmin.vbs"
wscript.exe "%TEMP%\getadmin.vbs"
del "%TEMP%\getadmin.vbs"
exit /b
:gotAdmin
:SCset
:: VALUE
:: 2 (Automatic) (DEFAULT)
:: 4 (Disabled) (to prevent network freeze after applying a huge hosts file)
::
:: See https://superuser.com/a/1277960
::
reg add "HKLM\SYSTEM\CurrentControlSet\services\Dnscache" /v Start /t REG_DWORD /d 4 /f
echo Reboot your system now!
echo.
pause

View File

@ -1,49 +0,0 @@
@ECHO OFF
:: Check if we are administrator. If not, exit immediately.
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params= %*
echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params:"=""%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
goto SCset
:SCset
:: https://superuser.com/a/1217703
:: https://stackoverflow.com/a/133926
::sc config Dnscache start= disabled
::sc stop Dnscache
:: VALUE
:: 2 (Automatic) (DEFAULT)
:: 4 (Disabled) (prevent freeze network after applying huge hosts file)
::
:: Latest changes in security Windows 10 denied access to changing services via other tools except registry hack
::
:: See https://superuser.com/a/1277960
::
REG add "HKLM\SYSTEM\CurrentControlSet\services\Dnscache" /v Start /t REG_DWORD /d 4 /f
echo "Reboot your system now!"
echo .
@PAUSE

View File

@ -401,9 +401,9 @@ You can also refer to the "Third-Party Hosts Managers" section for further recom
### Warning: Using this `hosts` file in Windows may require disabling DNS Cache service
Windows has issues with larger hosts files. Recent changes in security within Windows 10 denies
access to changing services via other tools except registry hacks. Use the `disable-dnscache-service-win.cmd`
access to changing services via other tools except registry hacks. Use the `disable-dnscache-service-win.bat`
file to make proper changes to the Windows registry. You will need to reboot your device once that's done.
See the [the comments within the `cmd` file](https://github.com/StevenBlack/hosts/blob/master/disable-dnscache-service-win.cmd)
See the [the comments within the `bat` file](https://github.com/StevenBlack/hosts/blob/master/disable-dnscache-service-win.bat)
for more details.
## Reloading hosts file