以管理员身份运行命令提示符

2022-09-04 07:51:37

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

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

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

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

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


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

另请参阅评论

在没有管理员权限的情况下以管理员身份运行


答案 2

您有几种选择

A. 使用管理员权限创建快捷方式。

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

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

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

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

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

同样,创建快捷方式并设置为以管理员身份运行。生成的任何进程也将具有管理员权限。您的 Java 代码将运行:

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

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

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


推荐