批处理脚本,Powershell,并且不触发Windows中的UAC
||
我正在寻找以提升模式(运行身份管理员)运行批处理文件的方法,这样它就不会触发UAC提示用户交互。除其他事项外,我们在登录脚本中进行了一些注册表编辑,这些编辑触发UAC提示运行的每个注册表。
我意识到这种做法违背了UAC的目的,但是如果能以某种方式在启用了UAC的计算机上运行批处理文件,那就太好了。
这些批处理文件必须能够在没有任何用户交互的情况下运行(它们主要是登录脚本和某些管理脚本)。我们没有使用Active Directory域,因此希望有一个针对所有AD域的解决方案。
到目前为止,我发现的解决方案如下:
完全禁用UAC-我们通常会这样做,但是在某些情况下我们可能无法禁用它。
为我们希望在提升模式下运行的批处理文件创建快捷方式。转到快捷方式>快捷方式选项卡>高级>单击“以管理员身份运行”
此解决方案似乎有效,但是该快捷方式的初始运行会导致出现UAC提示。在批处理文件中运行的所有命令都不会引起UAC提示。接近解决方案,但是最好不要收到任何提示。
3。
使用\'runas \'命令运行批处理文件。
我已经尝试过了,但是它仍然没有达到阻止UAC提示的高度。
另外,使用echo \'password \'|提供密码的runas .....方法似乎无法正常工作,因此我总是不得不输入密码。
我当时在想,但我尚未真正研究的另一件事是,在启用了UAC的环境中,PowerShell脚本能更好地运行/工作吗?是否经过Windows'trust \'认证的Powershell脚本,并允许它们不受阻碍地运行而不触发UAC?
根据我的阅读,除禁用UAC之外,这些都无法解决。但是我只是想看看是否有人可以对此主题提供更多的启示。
谢谢,
干杯
没有找到相关结果
已邀请:
3 个回复
门锑腺潮
(使用
),或者更好的是PowerShell \的内置注册表支持。 例如。
不需要提升权限(因为每个人都可以读取该键),但是在该键上设置属性将需要提升的PSH会话。 一种替代方法,如果您执行需要管理访问权限的操作(需要使用ACL修改对某些对象的访问权限,从而限制了对管理员的修改)。或者,如果没有输入管理员帐户的凭据,则非管理员无法执行UAC的操作。 考虑使用Task Scheduler:用户登录时触发,但在特定的提升的管理员帐户下配置。 简介:确实需要至少了解您正在做的一件事,这些事情会详细触发UAC。
倾坞髓
脚本以
身份启动程序,而无需询问密码: 您需要将用户密码保存为安全字符串:
然后,您可以通过以下方式使用存储的密码将文件作为“ 4”运行:
恋裂