【问题标题】:Batch file: run command in a cmd.exe launched as a different user using batch file批处理文件:在使用批处理文件作为不同用户启动的 cmd.exe 中运行命令
【发布时间】:2013-02-21 09:45:05
【问题描述】:

大家好,我是批处理文件的新手,我面临着挑战。我必须自动使用批处理文件执行以下步骤。第 1 步和第 3 步我能够弄清楚,但是对于第 2 步,我需要您的帮助:

A.使用用户运行命令提示符:

评论:这个我已经想通了,我可以使用:


            @Echo Off               
            runas /profile /savecred /user:xyzasa\asdasq "cmd"

B.使用在上一步中打开的命令提示符进行一些注册表更改

评论:我知道这可以使用 reg add 命令完成,但是当我将此命令放入批处理文件时,它不会被执行。这是我的批处理文件的当前形状:

            @echo off
            runas /profile /savecred /user:xyzasa\asdasq "cmd"
            reg add <Machine Name><Registry path and the changes to be made>

C.启动一个 rdp 文件

评论:我也可以通过简单地在最后一步提到 rdp 文件的名称来做到这一点。

            @echo off
            runas /profile /savecred /user:xyzasa\asdasq "cmd"
            reg add <Machine Name><Registry path and the changes to be made>
            asd.rdp

问题:如何确保 cmd 作为上一步的结果启动后,reg add 命令在最近启动的提示符中执行?

【问题讨论】:

    标签: batch-file registry runas


    【解决方案1】:

    按照您的方式,runas 命令将启动一个以该用户身份运行的单独 cmd.exe 实例,您无法以任何实际方式与原始 cmd.exe 实例进行交互.

    我建议您创建两个脚本:一个仅包含“runas”命令(例如“main.bat”),另一个包含您希望在该用户帐户下完成的所有操作(例如“sub.bat”) .然后在 main.bat 中做这样的事情:

    runas /profile /savecred /user:xyzasa\asdasq "cmd /c sub.bat"
    

    【讨论】:

      猜你喜欢
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-08
      • 2012-05-02
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多