【问题标题】:Shell commands as root以 root 身份执行 Shell 命令
【发布时间】:2020-11-12 15:12:01
【问题描述】:

我试图执行Runtime.getRuntime().exec("taskkill /PID ... /F");,但我一直在错误流上获得权限被拒绝。我知道它通常需要以 root 身份打开 cmd,但我想知道是否有办法通过代码来实现这一点(在 Windows 中,比如在开头添加 sudo)。

【问题讨论】:

    标签: java shell


    【解决方案1】:

    我建议你在 Windows 中使用 runas 功能。

    Runas 允许用户以不同的方式运行特定的工具和程序 比用户当前登录提供的权限。

    请尝试以下方法:

    Runtime.getRuntime().exec("cmd /c \"runas /savecred /user:theDomain\\administrator yourCommand\"")
    

    Runas Documentation

    【讨论】:

    • 您好,您有时间查看我的回复吗?如果它对您有用,请考虑投票和/或选择它作为最终答案。感谢您的宝贵时间!
    【解决方案2】:

    您可以使用管理员权限打开 CMD,也可以使用管理员权限运行您的 Java 程序。调用 shell 时,它应该继承这些权限并能够以管理员权限执行。

    【讨论】:

    • 没问题,很高兴为您提供帮助。 :)
    猜你喜欢
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    相关资源
    最近更新 更多