【问题标题】:How to supply password to runas command when executing it from java从java执行时如何为runas命令提供密码
【发布时间】:2012-05-30 06:44:49
【问题描述】:

我必须从需要管理权限的 java 程序运行批处理文件。我正在使用以下命令

runtime.getruntime().exec("runas /user:Admin \"C:\\Program Files\\test.bat\"");

但是当它被执行时,它会提示输入管理员帐户的密码。我怎样才能给它的密码。

【问题讨论】:

    标签: java batch-file


    【解决方案1】:

    您不能将密码通过管道传输到 runas,因为它从终端请求密码,而不是从标准输入。没有“sudo -s”的等价物。

    【讨论】:

    • 感谢您提供有意义的有见地的回答:)
    • 这是唯一正确(并且应该被接受)的答案。
    【解决方案2】:

    试试这个

    runtime.getruntime().exec("cmd /C echo YOUR_PASS | runas /user:Admin \"C:\Program Files\test.bat\"");
    

    【讨论】:

    • 我手头没有windows机器,但是你能试试“cmd.exe /C echo”而不是“echo”吗?
    • @Muzy 请记住,当您使用runas 时,生成的进程的初始当前文件夹将更改为%SYSTEM%\system32
    • 这行得通吗?如果我尝试,它认为我的密码不正确。如果我只是在命令行中运行 "cmd /C echo|set /p=pwd | runas /user:Admin "cmd"",它会告诉我密码错误,而我没有!
    • 对我不起作用。管道密码在 Windows 7 中不起作用。
    • 我们可以对这个问题进行编辑吗?接受的答案显然是错误的并且不起作用。下面有一个正确的答案,但没有给出解决方法。
    【解决方案3】:

    我小时候做过这个

    echo Pa$$W0Rd | some_command_expects_it
    

    【讨论】:

    • 文件异常java.io.IOException:无法运行程序“echo”:
    猜你喜欢
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 2011-06-18
    • 1970-01-01
    相关资源
    最近更新 更多