windows脚本获取管理员权限修改host

很多时候我们常常需要通过管理员权限执行脚本,脚本可能涉及到一些受保护信息的访问,我们写个简单的脚本来更改host文件,host文件就是需要管理员权限才能访问的启动脚本时先检查是否有管理员权限,如果没有就调用授权脚本进行管理员授权打开,给用户弹出需要管理员权限是否允许。

脚本如下:

bash 复制代码
@echo off
setlocal enableextensions

REM 检查是否以管理员权限运行脚本
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM 如果没有以管理员权限运行脚本,将重新启动脚本以获取管理员权限
if '%errorlevel%' NEQ '0' (   
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B
)
REM 修改host文件
set HOSTS_FILE=%SYSTEMROOT%\System32\drivers\etc\hosts
echo 127.0.0.1 www.baidu.com >> "%HOSTS_FILE%"
echo Hosts文件已成功修改!
pause

还原

bash 复制代码
@echo off
setlocal enableextensions

REM 检查是否以管理员权限运行脚本
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM 如果没有以管理员权限运行脚本,将重新启动脚本以获取管理员权限
if '%errorlevel%' NEQ '0' (   
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B
)

REM 反修改host文件
set HOSTS_FILE=%SYSTEMROOT%\System32\drivers\etc\hosts

REM 删除指定行
findstr /v baidu.com "%HOSTS_FILE%" > "%HOSTS_FILE%.tmp"
move /y "%HOSTS_FILE%.tmp" "%HOSTS_FILE%" > nul

echo Hosts文件已成功反修改!
pause
相关推荐
Li Ming&9 小时前
Windows Server 2019 操作系统《保姆级安装教程》
windows·信息与通信
陈天伟教授11 小时前
Windows操作技巧 -03
windows
TechExplorer36512 小时前
Windows 隐藏导航窗格【主文件夹】、【图库】、【OneDrive】
windows·onedrive
我一定会有钱13 小时前
官网谷歌浏览器离线安装包一键下载
windows
易点云徐源15 小时前
(已解决)Foxmail打开后2分钟左右崩溃
windows·foxmail
其实防守也摸鱼16 小时前
每天一个知识点——RCE漏洞
运维·服务器·数据库·windows·安全·github·漏洞
江湖人称菠萝包17 小时前
【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter6-动态链接库
windows·笔记
2601_9623649718 小时前
重装系统后,Windows Hello 为什么要重新录入人脸?
windows·安全·电脑
水饺编程19 小时前
第5章,[Win32 章节] :在平面直角坐标系中描点
c语言·c++·windows·visual studio
三玖诶20 小时前
DeepSeek Launcher:内置 Node.js,为什么首次启动仍需要网络?
windows·开源·deepseek