Windows 即使具有管理员权限,批处理脚本访问也被拒绝

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

我在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 %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等?另外,尝试强制管理员提升。可能是。不幸的是,这是该公司的防火墙和防病毒软件,所以我无法更改设置。