【问题标题】:How to run only some commands in a Windows batch file as admin?如何以管理员身份仅运行 Windows 批处理文件中的某些命令?
【发布时间】:2020-07-23 21:09:02
【问题描述】:

通过电子邮件,我正在帮助其他人设置 Windows 7 防火墙规则,以防止 Zoom 视频会议客户端可能访问互联网,除非它是由用户明确启动的。 (目前没有证据表明 Zoom 会这样做,但鉴于 Zoom 的所有问题都暴露出来,她希望格外小心。)

她设置了“允许”Windows 防火墙规则并将它们命名为“Zoom 1”和“Zoom 2”(“1”和“2”用于 OUT 和 IN 规则)。

所以现在,当她想使用 Zoom 时,她启用了这 2 个防火墙规则,完成后,她将其禁用。

我想帮她自动完成,所以我写了一个简单的批处理文件并发送给她:

 netsh advfirewall firewall set rule name="Zoom 1" new enable=yes
 netsh advfirewall firewall set rule name="Zoom 2" new enable=yes
 pathname\zoom.exe
 netsh advfirewall firewall set rule name="Zoom 1" new enable=no
 netsh advfirewall firewall set rule name="Zoom 2" new enable=no

当她运行它时,她会收到关于netsh 命令的“请求的操作需要提升”(管理员)的通知。

如何修改这个批处理文件以管理员身份运行netsh 命令,而不是zoom.exe

【问题讨论】:

  • runas /trustlevel:0x10000 zoom.exe 工作吗?
  • @HackingAddict1337 如果它成功运行了zoom.exe,她将如何确定它实际运行的信任级别?
  • 使用procmon等外部工具
  • 或者,explorer zoom.exe 也可以
  • @HackingAddict1337 感谢您的提示。你推荐什么技术来运行带有提升的批处理文件,以便netsh 命令工作?

标签: batch-file admin windows-firewall elevated-privileges video-conferencing


【解决方案1】:

我不确定你到底是什么意思,但是:

@echo off
net session >nul 2>&1 || (
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();"
exit /b
)
whoami /priv
pause
netsh advfirewall firewall set rule name="Zoom 1" new enable=yes
netsh advfirewall firewall set rule name="Zoom 2" new enable=yes
explorer zoom.exe
netsh advfirewall firewall set rule name="Zoom 1" new enable=no
netsh advfirewall firewall set rule name="Zoom 2" new enable=no

使用mshta提示UAC。

explorer 始终以中等(或低)完整性运行,无论父进程的完整性级别如何。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 2013-09-16
    • 2011-08-22
    • 1970-01-01
    相关资源
    最近更新 更多