以管理员身份运行流程

时间:2015-05-13 04:54:07

标签: java windows

我试图以管理员身份运行命令行命令。

我创建了一个名为devconShort的devcon.exe快捷方式。在快捷方式的属性中,我已选中该框以管理员身份运行。我直接尝试了命令行中的快捷方式,但它仍然有效,但是Windows仍然问我是否允许应用程序对我的计算机进行更改。

但是当我在我的Java代码中运行它时,我收到一个错误,Windows无法找到该文件。

enter image description here

我使用下面的代码来运行快捷方式。还有其他办法吗?

    try
    {
        Runtime rt = Runtime.getRuntime();
        Process pr = null;
        pr = rt.exec("cmd /c start \"\" \"C:\\devconShort.lnk enable *DEV_4222*\"");

        BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));

        String line = null;

        while ((line = input.readLine()) != null)
        {
            System.out.println(line);
        }

        int exitVal = pr.waitFor();
        System.out.println("Exited with error code " + exitVal);
    }
    catch (Exception e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我也尝试了以下

pr = rt.exec("runas /noprofile /user:Administrator \"C:\\devconShort.lnk enable *DEV_4222*\"");

并提供以下消息

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要以管理员身份启动CMD窗口 - 请试一试:

try{

    Runtime rt = Runtime.getRuntime();

    Process pr = null;

    pr = rt.exec("runas /noprofile /user:Administrator cmd /c start \"\" \"C:\\devconShort.lnk enable *DEV_4222*\"");

    BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));

    String line = null;

    while ((line = input.readLine()) != null)
    {
        System.out.println(line);
    }

    int exitVal = pr.waitFor();
    System.out.println("Exited with error code " + exitVal);
}
catch (Exception e)
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}