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
相关推荐
ekkcole2 小时前
windows使用命令解压jar包,替换里面的文件。并重新打包成jar包,解决Failed to get nested archive for entry
java·windows·jar
a小胡哦3 小时前
Windows、Mac、Linux,到底该怎么选?
linux·windows·macos·操作系统
不爱学习的YY酱6 小时前
MusicGPT的本地化部署与远程调用:让你的Windows电脑成为AI音乐工作站
人工智能·windows
web150854159357 小时前
超级详细Spring AI运用Ollama大模型
人工智能·windows·spring
久绊A12 小时前
Python 基本语法的详细解释
开发语言·windows·python
菜鸟单飞1 天前
介绍一款非常实用的PDF阅读软件!
windows·pdf·电脑
流星白龙1 天前
【Linux】35.封装 UdpSocket(2)
linux·运维·windows
waicsdn_haha1 天前
Visual Studio Code 2025 安装与高效配置教程
c语言·ide·windows·vscode·微软·编辑器·win7
ChoSeitaku1 天前
12.重复内容去重|添加日志|部署服务到Linux上(C++)
linux·c++·windows
Major_xx1 天前
装win10系统提示“windows无法安装到这个磁盘,选中的磁盘采用GPT分区形式”解决方法
windows·gpt