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

时间:2012-10-04 01:22:19

标签: java vb.net installanywhere

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

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

现在的问题是,如果我点击.bat文件作为普通的Windows用户使用默认安全设置,那么它不会启动我的应用程序。如果我将.bat文件作为“以管理员身份运行”启动,则应用程序启动。如果我更改'Test'用户的安全设置并且make是自由的,那么我可以在不运行'Run as Admin'的情况下启动应用程序。

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

顺便说一下,我使用Install Anywhere安装程序。

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

我发现http://nsis.sourceforge.net/ShellLink_plug-in但我不知道如何在vb脚本中执行此操作。

2 个答案:

答案 0 :(得分:0)

我认为在没有提示输入密码的情况下,可以在批处理文件中执行此操作。您可以创建一个小型c ++启动程序来请求权限,然后运行您的Java应用程序。

答案 1 :(得分:0)

您使用的是什么版本的JSW?

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

这是来自JSW release notes for 3.5.7:

  

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

干杯,