以Administrator身份运行命令提示符

我正在开发一个小的关机调度程序项目,我必须把电脑置于"Stand By"模式。 我正在使用的命令是

 Runtime.getRuntime().exec("cmd /c Powrprof.dll,SetSuspendState "); 

这个命令需要pipe理员权限,我不知道如何得到。 同时search以前的答案我发现我可以使用elevate.exe作为

 Runtime.getRuntime().exec("c:/elevate Rundll32.exe Powrprof.dll,SetSuspendState "); 

Elevate.exe正在执行任务,但是耗费太多时间,即使软件变慢。 有没有其他的快速方法? 我正在使用Netbeans IDE。

你有几个select

A.用admin priv创build一个快捷方式。

该快捷方式将运行cmd /c Rundll32.exe Powrprof.dll,SetSuspendState

您的Java代码将运行快捷方式:

 Runtime rt = Runtime.getRuntime(); rt.exec("cmd /c start \"\" \"myshortcut.lnk\"") 

右键单击快捷方式图标>属性>高级>以pipe理员身份运行

B.以pipe理员身份运行java进程

再次,创build一个快捷方式并设置为以pipe理员身份运行。 任何产生的进程也将具有pipe理员权限。 你的java代码将运行:

 rt.exec("cmd /c Powrprof.dll,SetSuspendState") 

C.使用JNA直接调用SetSuspendState例程。 Java进程需要pipe理员权限(比如B),但是你不需要产生一个进程。 如果你喜欢这个,我可以提供源代码。

D. 使用wizmo实用程序wizmo quiet standby

  Runtime.getRuntime().exec("runas /profile /user:Administrator \"cmd.exe /c Powrprof.dll,SetSuspendState\""); 

另见PLZ见评论

以pipe理员权限运行

添加参数/savecred

 runas /profile /user:Administrator /savecred 

input密码一次。 在未来的操作系统不会问你的密码。