0

以管理员身份在 Windows 2008 中运行 .bat 文件。

我以用户身份在 Windows 2008 中安装了 Java 应用程序(用户名为 Test。用户组为 Admin)。此应用程序使用 JSW 并生成 .bat 文件以在 Windows 平台上启动应用程序。这个 .bat 文件是在 maven 插件的帮助下创建的。

现在的问题是,如果我以具有默认安全设置的普通 Windows 用户身份单击 .bat 文件,那么它不会启动我的应用程序。如果我以“以管理员身份运行”启动 .bat 文件,则应用程序启动。如果我更改了“测试”用户的安全设置并且 make 是自由的,那么我可以在不运行“以管理员身份运行”的情况下启动应用程序。

我想自动化这一步。我不希望用户执行“以管理员身份运行”或更改其安全设置。因此,我想出了在安装程序安装应用程序后运行一些 vb 脚本的解决方案,以便该文件对该 .bat 文件进行一些安全设置,以便“测试”用户可以一步启动 .bat 文件。这是可能的还是更好的解决方案?

顺便说一句,我正在使用 Install Anywhere 进行安装程序。

尝试了一段时间后,我发现我还可以更改指向 .bat 文件的快捷方式文件的设置(高级属性)。此快捷方式具有高级属性,其中有“以管理员身份运行”选项。如果选中该选项,那么我的问题就解决了。所以我想知道是否可以从 vb 脚本中检查该选项?如果是,那么有什么提示吗?如果不是,那么有什么替代方法呢?

我找到了http://nsis.sourceforge.net/ShellLink_plug-in但我不知道如何在 vb 脚本中做到这一点。

4

2 回答 2

0

你用的是什么版本的JSW?

从 JSW 3.5.7 版开始,当您将 java 应用程序作为 Windows 服务启动/停止时,它将自动请求提升到管理员权限。

这是来自 3.5.7 的JSW 发行说明

实现了一种从非提升 (UAC) 控制台安装、删除、启动、停止等方式,将 Wrapper 作为 Windows 服务。Wrapper 使用子进程透明地提升。从 Windows Vista 和 2008 开始,这对于与 Windows 服务管理器的顺畅交互是必需的。

干杯,

于 2012-10-04T03:14:04.210 回答
0

我认为在批处理文件中不提示输入密码是不可能的。您可以制作一个小型 c++ 启动器来请求权限,然后运行您的 java 应用程序。

于 2012-10-04T02:37:19.573 回答