Windows 即使具有管理员权限,批处理脚本访问也被拒绝
我在Windows7中有一个批处理脚本,用于更新失败的Windows 即使具有管理员权限,批处理脚本访问也被拒绝,windows,batch-file,windows-7-x64,Windows,Batch File,Windows 7 X64,我在Windows7中有一个批处理脚本,用于更新失败的hosts文件。 我以具有管理权限的用户身份登录 即使我使用“以管理员身份运行”选项运行脚本,我也会被拒绝访问。执行此部分脚本时复制了0个文件: for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do set ip=%%b set ip=%ip:~1% REM create changing part of hosts file... if exist %tem
hosts
文件。
我以具有管理权限的用户身份登录
即使我使用“以管理员身份运行”选项运行脚本,我也会被拒绝访问。执行此部分脚本时复制了0个文件:
for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do set ip=%%b
set ip=%ip:~1%
REM create changing part of hosts file...
if exist %temp%\temp.txt del %temp%\temp.txt
echo %ip% myproxy >> %temp%\temp.txt
REM check this...
set hostpath=C:\WINDOWS\system32\drivers\etc
REM add static part of hosts file
type "%hostpath%\hosts-static" >> %temp%\temp.txt
REM replace hosts file
copy /y %temp%\temp.txt "%hostpath%\hosts"
ipconfig /flushdns
netsh interface ip delete arpcache
pause
我还尝试创建一个快捷方式并设置“高级->以管理员身份运行”选项,但没有成功
如果我以管理员身份打开一个cmdshell,然后从那里运行脚本,一切正常,但无法直接双击文件(或其链接)运行脚本。
有什么想法吗
编辑:
- 添加了整个脚本李>
- 我试图为以下命令创建一个快捷方式以管理员身份执行 C:\Windows\System32\cmd.exe/C script.bat
从相同的快捷方式(无参数)我可以打开一个窗口,在那里我可以正确执行批处理。我真的不明白为什么。在执行
复制命令之前,请尝试attrib-r-s-h-a“%hostpath%\hosts”
。如果任何文件的属性为+r、+s或+h,如果您尝试使用copy
覆盖它,您将获得“访问被拒绝”,这显然是一个延迟响应,但只是用一个非常简单的解决方案解决了此问题,因此我想与大家分享:
使用可以修改访问控制列表(ACL)以绕过拒绝访问的错误。
运行以下命令:
ICACLS C:\path\to\batch\file\directory\* /C
参数/C告诉批处理文件绕过拒绝访问错误。干杯。使用管理员权限在我的机器上工作正常。获取访问被拒绝
。我通过双击来运行它。你能显示其余的代码吗?试着重新启动你的系统,似乎某个进程在文件上有一个活动锁定尝试重新启动您的电脑,如果这不起作用,尝试给予您的系统更多的控制权或使用adminI运行批处理文件。我试图在脚本中添加该行,但仍然收到错误。@ValentinaDiGiacomo可能是防止主机被覆盖的病毒扫描软件?尝试禁用您的病毒扫描程序/互联网安全软件、CryptoPrevent等?另外,尝试强制管理员提升。可能是。不幸的是,这是该公司的防火墙和防病毒软件,所以我无法更改设置。