:: This script will create in first running backup of ORIGINAL/CURRENT hosts file in hosts.skel file.
:: If hosts.skel file exists, then NEW copy with customized unified hosts file will be copied to proper path.
:: Next DNS Cache will be refreshed.
-:: YOU NEED RUNNING THIS BAT FILE IN COMMAND LINE PROMPT WITH ADMINISTRATOR PRIVILIGES
+:: THIS BAT FILE WILL BE LAUNCHED WITH ADMINISTRATOR PRIVILIGES
@ECHO OFF
+:UAC_ADMIN
+>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
+if '%ERRORLEVEL%' NEQ '0' (
+ ECHO Requesting administrative privileges...
+ GOTO UAC_PROMPT
+) else (
+ GOTO ADMIN
+)
+
+:UAC_PROMPT
+ECHO Set UAC = CreateObject^("Shell.Application"^) > "%TEMP%\getadmin.vbs"
+ECHO UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%TEMP%\getadmin.vbs"
+"%TEMP%\getadmin.vbs"
+EXIT /B
+
+:ADMIN
+if exist "%TEMP%\getadmin.vbs" (
+ DEL "%TEMP%\getadmin.vbs"
+)
+pushd "%CD%"
+CD /D "%~dp0"
+CD %CD%
+%COMSPEC% /c "updateHostsWindows.bat" start
+EXIT
+
+:START
if not exist "%WINDIR%\py.exe" (
ECHO :: ERROR :: Python 3.5 Runtime NOT FOUND...
ECHO :: ERROR :: Download and install lastest Python 3.5 for Windows from https://www.python.org/downloads/
GOTO END
) ELSE (
GOTO PY35RT
- )
+)
+
:PY35RT
if not exist "%LOCALAPPDATA%\Programs\Python\Python35\Python35.dll" (
ECHO :: ERROR :: Python 3.5 Runtime NOT FOUND...
ECHO :: INFO :: Python 3.5 Runtime was found...
ECHO :: INFO :: Running main script...
GOTO DNSCHECK
- )
+)
+
:DNSCHECK
if not exist "%WINDIR%\System32\drivers\etc\hosts.skel" (
COPY %WINDIR%\System32\drivers\etc\hosts %WINDIR%\System32\drivers\etc\hosts.skel
GOTO :CLEARDNS
)
+
:CLEARDNS
- updateHostsFile.py -a
- COPY hosts %WINDIR%\System32\drivers\etc\
- ipconfig /flushdns
- GOTO END
+updateHostsFile.py -a
+COPY hosts %WINDIR%\System32\drivers\etc\
+ipconfig /flushdns
+GOTO END
+
:END