【发布时间】:2011-09-04 19:43:14
【问题描述】:
我正在寻找以提升模式(运行管理员)运行批处理文件,以便它不会触发 UAC 提示用户交互。除其他外,我们在登录脚本中进行了一些注册表编辑,这会触发 UAC 提示每个运行的注册表。
我意识到这种方式违背了 UAC 的目的,但如果有某种方法可以在启用了 UAC 的机器上运行批处理文件,那就太好了。
这些批处理文件需要能够在没有任何用户交互的情况下运行(它们主要是登录脚本和一些管理脚本)。我们没有使用 Active Directory 域,因此希望有针对无 AD 域的解决方案。
目前我找到的解决方法如下:
完全禁用 UAC - 我们通常会这样做,但我们可能会遇到无法禁用它的情况。
-
为我们希望在提升模式下运行的批处理文件创建一个快捷方式。转到快捷方式的属性>快捷方式选项卡>高级>勾选“以管理员身份运行”
- 此解决方案似乎有效,但快捷方式的初始运行会导致 UAC 提示出现。在批处理文件中运行的所有命令都不会导致 UAC 提示。接近解决方案,但最好不要得到任何提示。
3。 使用“runas”命令运行批处理文件。
- 我已经尝试过了,但它仍然无法实现提升以防止 UAC 提示。
- 另外,使用 echo 'password' | runas ..... 提供密码的方法似乎无法正常工作,所以我总是不得不输入密码。
我正在考虑但尚未真正研究过的另一件事是,powershell 脚本在启用 UAC 的环境中运行/工作得更好吗? Windows 是否“信任”经过认证的 powershell 脚本并允许它们在不触发 UAC 的情况下畅通无阻地运行?
根据我的阅读,除了禁用 UAC 之外,这些都无法绕过 UAC。但我只是想看看是否有人能够对这个话题有所了解。
谢谢,
干杯
【问题讨论】:
标签: windows scripting powershell batch-file uac