![如何获取管理员模式脚本来运行非管理员模式例程](https://linux22.com/image/1371224/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E7%AE%A1%E7%90%86%E5%91%98%E6%A8%A1%E5%BC%8F%E8%84%9A%E6%9C%AC%E6%9D%A5%E8%BF%90%E8%A1%8C%E9%9D%9E%E7%AE%A1%E7%90%86%E5%91%98%E6%A8%A1%E5%BC%8F%E4%BE%8B%E7%A8%8B.png)
我有一个 MSBuild 脚本。它需要在管理模式下运行才能完成构建。我有几个命令行实用程序需要在用户模式(即非管理员)下运行,我需要将它们作为脚本的一部分放入其中。只需传递命令和参数即可轻松触发它们。唯一的问题是,我无法让它们在非管理模式下运行。有没有办法在以管理权限运行的命令提示符中调用命令并在普通用户的上下文中运行?
不确定我的问题的细节是否相关或上面的摘要是否足够,但以下是我正在尝试解决的具体问题:
我尝试作为 msbuild 脚本的一部分运行的需要提升权限的特定应用程序是 IIS 上的网站和端点的安装程序,仅举几个例子……还有很多。
有一个应用程序我无法在提升权限下运行,它是一个脚本,用于告诉我特定的 VirtualBox 虚拟机是否正在运行。我们使用 Vagrant 来编写虚拟机的安装脚本,我有一个批处理脚本,它使用 Vagrant Status 来判断机器是否正在运行,但如果我在提升模式下运行它,Vagrant 就会崩溃。我想我可以通过直接查询 VirtualBox 来解决这个问题,但我不知道这在提升权限下是否可行。如果我在非提升权限的控制台中运行 Vagrant 脚本,它就可以正常工作。
所有这些的结果需要在约 150 台开发机器上运行,无需任何干预......因此重新配置机器以不使用 UAC 或必须输入用户密码以以不同用户身份运行不是一种选择。
答案1
您可以通过调度程序将其作为即时命令(“at”命令)运行吗?它通常用于调用提升的任务,但它也可能用于调用非提升的命令。