以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密码一次。 在未来的操作系统不会问你的密码。