以Administrator身份运行命令提示符

Roh*_*wal 10 java command-line command-prompt

我正在开发一个小型关闭调度程序项目,我必须将计算机置于"Stand By"模式中.我正在使用的命令是

Runtime.getRuntime().exec("cmd /c Powrprof.dll,SetSuspendState ");
Run Code Online (Sandbox Code Playgroud)

此命令需要管理员权限,我不知道如何获取.在搜索以前的答案时,我发现我可以使用elevate.exeas

Runtime.getRuntime().exec("c:/elevate Rundll32.exe Powrprof.dll,SetSuspendState ");
Run Code Online (Sandbox Code Playgroud)

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

The*_*bit 10

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

另外请看看评论

在没有管理员权限的情


mik*_*ery 9

你有几个选择

A.使用admin priv创建快捷方式.

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

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

Runtime rt = Runtime.getRuntime();
rt.exec("cmd /c start \"\" \"myshortcut.lnk\"")
Run Code Online (Sandbox Code Playgroud)

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

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

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

rt.exec("cmd /c Powrprof.dll,SetSuspendState")
Run Code Online (Sandbox Code Playgroud)

C.使用JNA直接调用SetSuspendState例程.Java进程将需要admin priv(如B),但您不必生成进程.如果你喜欢这个,我可以提供源代码.

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


小智 6

添加参数 /savecred

runas /profile /user:Administrator /savecred
Run Code Online (Sandbox Code Playgroud)

输入密码一次.在将来OS不会问你密码.