我有一个提升的控制台运行一些bat文件。让此控制台以提升模式运行是必需的,因为它能够执行某些任务,如管理网络共享等,而无需请求权限。但有时脚本还必须启动一些不希望运行升级的应用程序。所以我们希望我们的升级蝙蝠开始以非升高模式应用。在Windows上有没有内置的方法可以做到这一点?使用DOS命令START启动进程到日期。
顺便说一下,该机器是Windows 7旗舰版x64。
我知道这个问题已经在许多问题(this collects many of them)中以编程方式进行了讨论,但我们的要求是在cmd上运行的bat脚本,以及任何可能对我们的任务有帮助的独立可执行文件,如nircmd,7z等。
澄清:我们已经有一个计划任务启动控制台升级,升级控制台不是问题所在。
答案 0 :(得分:8)
内置Windows方式:START RUNAS ...
允许您以受限用户身份运行流程。这是一个例子:
runas /trustlevel:0x20000 cmd.exe
无论如何,在执行该方式的进程上执行权限与从启用了UAC的UI启动的执行权限之间存在一些内部差异(explorer.exe通过正常的用户交互,我的意思是,从文件浏览器执行或从开始菜单执行)
第三方应用方式:我们可以使用PSExec来实现我们的目标,Microsoft Technet blogs是我们可以在Windows Sysinternals的PSTools上找到的独立可执行文件。这是一个例子:
psexec -l -d cmd.exe
我已经深入研究了这个问题,我发现任何正在运行的权限或安全标志都没有区别。
PsExec使用{{3}}创建一个称为令牌的安全上下文,它是自己的精简版本,删除了管理权限和组成员身份。生成一个类似于Windows分配给标准用户的令牌后,Process Explorer调用CreateProcessAsUser以使用新令牌启动目标进程。
这些是我经过数小时研究后得到的最好的收获;任何能够提供进一步细节的人都将受到欢迎。
答案 1 :(得分:1)
真的不是我的专业领域,但START RUNAS ...
或AT
是否适合该法案?