【问题标题】:running a dos command via java as administrator以管理员身份通过 java 运行 dos 命令
【发布时间】:2011-04-20 10:27:51
【问题描述】:

我有一个启动应用程序的 dos 命令。我想以管理员身份启动应用程序。我该怎么做?下面是我试过的代码。

String arg[]={"C:\\app1.exe", "C:\\app2.exe", "c:\\app3.exe"};
String pwd[]={"123","-x","-sf"};
String outputfile="c:\\output.xml"
String command=arg[0]+pwd[0]+arg[1]+pwd[1]+arg[2]+pwd[3]+output;
Process pr=rt.exec(command);

我从命令提示符尝试了相同的命令,它工作正常。但是当我尝试从 java 代码运行相同的代码时,它会继续运行而不产生任何输出。

【问题讨论】:

  • 我不确定,但为了在不利用 Windows API 的情况下执行此操作,您可能必须使用提升运行 Java 程序。那么程序所做的任何事情也会有提升。

标签: java dos


【解决方案1】:

【讨论】:

  • 我尝试使用 runas,但如果我给 runas,应用程序“.exe”不会启动。我给了 runas /user:macname\\admin.
  • 在从 java exec() 尝试之前,您是否直接在命令提示符下使用 runas 中的 /env 参数进行了尝试?如果您不输入/env,runas 将假定您希望它使用在/user 参数的用户配置文件中设置的环境变量而不是从当前用户/进程设置的环境变量来运行
  • 如果我上面的建议仍然不起作用,那么您别无选择,只能按照 nalroff 的建议将您的应用程序的权限提升到可能的最高权限(例如 run as administrator 或将安全级别设置为您的 Java 应用程序使用 Windows .manifest 文件),以便您从 exec() 调用的任何内容都将继承与您的应用程序相同的权限
猜你喜欢
  • 2023-03-19
  • 2013-02-15
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 2011-12-03
  • 2012-04-18
相关资源
最近更新 更多