【问题标题】:Running a script using the runas command使用 runas 命令运行脚本
【发布时间】:2012-03-06 16:37:06
【问题描述】:

我需要以管理员身份运行安装脚本。我尝试了几件事,但没有一个有效

runas /user:Administrator install.bat

shell 询问密码,然后打开一个新的 shell 窗口,并立即关闭它而不执行脚本

runas /user:Administrator "call install.bat" 

shell 要求输入密码,然后失败并出现错误

Unable to run - call install.bat
2: The system cannot find the file specified

我不明白的是,如果我运行命令 call install.bat 而没有 runas 部分,脚本就会运行。对于需要管理员凭据的命令,它失败了,但这是意料之中的。

我有两个问题:

  • 如何以管理员身份使用 runas 命令运行脚本?
  • 能否解释一下为什么以下调用不起作用:runas /user:Administrator "call install.bat"

【问题讨论】:

    标签: windows


    【解决方案1】:

    使用cmd.exe 来解释.cmd.bat 文件。

    runas /user:Administrator "cmd.exe /K install.bat"
    

    runas /user:Administrator "cmd.exe /C install.bat"
    

    检查cmd.exe /? 以获得/K/C

    注意:/C 更可能是您想要的。

    评论后的旁注:runas 有一个 /env 选项:

    /env              to use current environment instead of user's.
    

    【讨论】:

    • 问题是它创建一个新的shell窗口,并清理当前环境(工作目录,自定义环境变量)
    • @Sydney:尽管如此,这就是要走的路。在准备好环境之后,您总是可以编写一个调用install.bat 的包装脚本。此外还有runas /env ...但你甚至没有在你的问题中指定这个附带条件。
    【解决方案2】:

    批处理文件由解释器 (cmd) 执行。为了在特权模式下运行脚本,您需要具有提升权限的 cmd。尝试使用 cmd 而不是 call。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-20
      • 2022-01-12
      • 2017-05-10
      • 2012-11-20
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多