2012-10-04 51 views
0

以管理员身份在Windows 2008中运行.bat文件。通过windows中的vb脚本检查“以管理员身份运行”快捷方式文件(.lnk)

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

现在的问题是,如果我点击.bat文件作为正常的Windows用户与默认安全设置,然后它不会启动我的应用程序。如果我以“以管理员身份运行”的方式启动.bat文件,则应用程序启动。如果我更改'测试'用户的安全设置并且make是自由的,那么我可以启动应用程序而不运行'以管理员身份运行'。

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

顺便说一句,我使用安装Anywhere的安装程序。

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

我发现http://nsis.sourceforge.net/ShellLink_plug-in但我不知道如何做到这一点在VB脚本。

+0

为什么这个标签Java和VB.NET? –

回答

0

我不认为有可能在没有提示输入密码的情况下在批处理文件中执行此操作。你可以让一个小的C++启动器来请求特权,然后运行你的java应用程序。

0

您使用的是哪个版本的JSW?

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

这是从JSW release notes为3.5.7:

实现的方式安装,删除,启动,停止等,包装 从非提升(UAC)Windows服务安慰。包装是 透明使用子进程提升。这需要从Windows Vista和2008开始 ,以便与Windows Service Manager畅通交互。

干杯,

+0

我正在使用JSW 3.2.x,我现在没有升级到3.5.7+的选项,所以你有什么解决方法吗? – Mitesh

+0

您可以修改脚本,以便启动带有runas的Wrapper可执行文件http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/runas.mspx?mfr=true – Naytzyrhc

相关问题