以管理员身份通过java运行dos命令
我有一个启动应用程序的dos命令。我想以管理员身份启动应用程序。我怎么能这样做?以下是我试过的代码。以管理员身份通过java运行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代码运行相同的代码时,它会继续运行而不会产生任何输出。
看到的RunAs -command:
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/runas.mspx?mfr=true
我试过使用runas,但如果我给予runas,应用程序“.exe”不会启动。我给了runas/user:macname \\ admin。 – sahana 2011-04-20 11:15:34
在尝试使用java'exec()'之前,您是否从命令提示符处直接在'runas'的'/ env'参数中尝试了它?如果你不放'/ env',runas会假定你想让它使用在'/ user'参数的用户配置文件中设置的环境变量运行,而不是从当前用户/进程设置的环境变量 – eee 2011-04-20 15:50:42
如果我的建议上面仍然不起作用,那么你别无选择,只能将你的应用程序的特权提升到nalroff所建议的最高特权(例如“以管理员身份运行”或使用Windows设置Java应用程序的安全级别“.manifest”文件),以便您从exec()调用的任何内容都将继承与您的应用程序相同的特权 – eee 2011-04-20 15:57:40
我不知道,但为了做到这一点,而不攻到Windows API,你可能会运行与海拔Java程序。然后,程序所做的任何事情都会有提升。 – Andy 2011-04-20 10:29:27