batch-file - 如何以管理员身份仅运行 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
?
解决方案
我不确定你到底是什么意思,但是:
@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
无论父进程的完整性级别如何,始终以中等(或低)完整性运行。
推荐阅读
- arduino - 在arduino中通过串行发送整数
- email - Office 365/Exchange Online Mail rule triggers twice when 2 internal recipients receive mail
- javascript - How I can check if a string is likely to be generated by a bot?
- javascript - Add only changes in content (don't replace all content) to live-preview (with jQuery)
- c# - 使用任务时由于返回值的 T-SQL 和 CLR 类型不匹配而失败
- maven - 如何为 xtend-maven-plugin 配置源兼容性级别?
- sql - Oracle 查询 - 选择日期和时间 - 重叠
- java - 为什么我无法使用 Spring Boot 在我的 Spring 上下文中获取我的 Bean 定义?
- java - 如何在 Hadoop/Spark 上的 spark 作业中使用 org.apache.httpcomponents?
- latex - wrapfig latex 相关查询