首页 > 解决方案 > 如何以管理员身份仅运行 Windows 批处理文件中的某些命令?

问题描述

通过电子邮件,我正在帮助其他人设置 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

标签: batch-fileadminwindows-firewallelevated-privilegesvideo-conferencing

解决方案


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

@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无论父进程的完整性级别如何,始终以中等(或低)完整性运行。


推荐阅读