java getRuntime()。exec需要UAC的exe

|| 因此,我们有一个作为Windows服务运行的Java进程。它需要以“ 0”执行命令。它执行的命令需要UAC。这是在Windows Server 2008上,听起来您无法为单个可执行文件禁用UAC,所以还有其他方法可以使这项工作吗?     
已邀请:
如果您的Java应用程序作为Windows服务运行,则它很可能在以下系统帐户之一下运行:SYSTEM(最有可能),LOCAL SERVICE或NETWORK SERVICE。因此,如果该服务在SYSTEM帐户下运行,则从该服务启动的所有内容都将继承该帐户。无论如何,必须允许您的服务与桌面交互。 总而言之,如果您的流程以提升的方式运行,则从其启动的流程也将以提升的方式运行。 要提升,您必须使用Windows API的ShellExecute或ShellExecuteEx函数。如果您正在启动的.exe在其清单中标有
level=requireAdministrator
,则外壳程序将显示UAC对话框。如果未标记,则可以使用
runas
动词/运算来强制执行UAC确认对话框。注意:Windows XP上的
runas
将显示“以其他用户身份运行”对话框。 如果通过ShellExecute实现了“ 0”,则可以使用适当的清单标记.exe。如果ѭ5使用CreateProcess,则该进程将以当前用户特权(即未提升的特权)启动;此外,如果.exe的清单中带有
requireAdministrator
,则该过程将完全不会启动。     

要回复问题请先登录注册