以管理员身份从 java 启动命令提示符 (CMD)

发布于 2024-12-11 03:01:52 字数 93 浏览 0 评论 0原文

我正在开发一个java项目。该项目需要管理员权限才能执行系统中的某些流程。为此,有什么方法可以在启动项目时授予管理员权限?有没有办法从java中以管理员权限启动命令提示符?

I am working on a java project. This project need admin privileges to execute some process in the system. For this is there any way to give admin privileges while starting the project? Is there any way to start command prompt with admin privileges from java?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少钕鈤記 2024-12-18 03:01:52

免责声明:我假设您是专门针对 Windows 平台提出这个问题的

我推荐两种方法:

使用 runas 程序

这是最简单的方法,因为您实际上想要一个控制台窗口,所以密码提示看起来并不尴尬。另一方面,用户可能会发现在控制台窗口中输入密码是可疑的。

使用CreateProcessWithLogonW< /a> API 函数

这需要您使用 Win32 Java 库。 (我推荐 JNA)。这需要更多的工作,但由于标准的 Windows 登录对话框,它可能会带来更好的用户体验。

Disclaimer: I assume you are asking this specifically for the Windows platform

There are two ways I'd recommend:

Use the runas program

This is the easiest way and since you actually want a console window the password prompt doesn't look awkward. On the other hand a user might find it suspicious to enter his password into a console window.

Use the CreateProcessWithLogonW API function

This requires you to use a Win32 Java library. (I'd recommend JNA). It is a little more work but it might lead to a better user experience because of the standard Windows login dialog.

迷路的信 2024-12-18 03:01:52

您不能简单地请求管理权限,也不能从未使用管理权限启动的应用程序启动管理命令行。这将是一个严重的安全问题。

相反,您可以检查您的应用程序是否以管理权限启动,如果没有则提示用户执行此操作(显示一些有关如何存档此内容的操作方法)。

不幸的是,这似乎是一个更大的问题,因为没有标准化的方法可以覆盖所有平台。然而,这个线程提供了一些想法: Detect if Java application was run as Windows 管理员

You can't simply request admin-privileges and you can't start an admin-command-line from an application that was not launched with admin-privileges. This would be a serious security problem.

Instead, you can check if your app was started with administrative privileges and if not prompt the user to do so (showing a little How-To on how to archive this).

Unfortunately this seams to be a bigger problem since there is no standardized way to do this covering all platforms. However this thread gives some ideas: Detect if Java application was run as a Windows admin

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文