如何在Windows / Active Directory环境中pipe理Java?

就像我想很多人一样,我们有一个Windows / Active Directory环境和许多需要Java的内部业务应用程序。 我们的经验是Java在这样的企业networking环境中玩不起来。 初始安装是好的(至less现在有一个MSI),但是让事情继续下去可能是一个很大的挑战。

我们遇到的具体问题包括:

  • Java有它自己的更新程序,所以它不会与我们的内部修补程序pipe理系统绑定。
  • 缺乏任何通过GPOpipe理Java设置的工具。
  • 要求用户手动configuration某些设置。
  • 每台机器上有多个Java运行时(Oracle Jinitiator是这里的一个特别的罪魁祸首)。
  • 存储在Program Files文件夹下的关键设置文件。

与我们在一起,这主要是一批login脚本和hacky解决方法,但我有兴趣听到其他人如何处理这些项目,如果有任何其他的事情需要注意这里。

要说出你的每一个担忧:

几年来,我一直在部署Java运行时环境版本,作为组策略的软件安装分配。 我禁用更新function作为MSI的转换,并根据需要通过强制升级来部署更新。 如果机器需要保留较旧的JRE(因为某些应用程序需要它),我使用安全组来阻止机器接收较新的升级。 (幸运的是,我没有经常这样做。)

我使用微软的Orca工具构build了Sun的MSI。 有一个像Adobe的“定制向导”这样的工具可能是很好的,但是我可以用Orca来做我所需要的一切。

我没有机会让用户“手动configuration某些设置”,但我会处理这两种方法之一。 如果某些用户需要某些与“规范”不同的设置,则可以部署一个组策略“首选项”来设置该设置(假设它在registry的用户部分中)或pipe理模板更改设置(假设它在registry的计算机部分)。 如果需要允许用户按需更改设置,我会不情愿地修改registry的权限,以允许用户(实际上是包含用户的安全组)来这样做。 勉强。

如果一个应用程序需要自己的JRE,那么我会将该JRE的安装与部署应用程序的脚本/ GPO绑定在一起,并将这两个JRE视为一个单元。 这是我能想到处理它的最简单的方法。

我很难回顾“程序文件”下的设置,但是我会勉强地将权限授予包含需要修改这些设置的用户帐户的安全组(如果需要的话)。 我可能也会把我的头抱在手里,诅咒太阳。

直到Sun一起采取行动:对JRE进行企业部署和pipe理,我认为我们所有人都有可能采取行之有效的解决方法来处理这个问题。 这是令人沮丧,但可悲的典型。 似乎绝大多数开发人员对系统pipe理员的工作没有概念。 <感叹>

实际上,我们不得不处理很多第三方应用程序(包括java)及其更新程序。

我们决定把Ninite作为我们的解决scheme。 访问网站并运行免费版本对于任何PC上的一次性安装都非常有用,但是,当您在无限的情况下使用Pro时,您还可以获得Ninite One作为订阅的一部分。 无限的是你可以从命令行运行,静静地部署大量的应用程序。

我会很高兴地透露,我们都是个人电脑,但作为一个整体,我们对解决scheme感到非常满意。

Ninite One有命令行开关来禁用自动更新等function,并在更新上创build桌面快捷方式。 这就是我们所做的,工作得很好。 但是,它不允许多个版本的Java,如果这是我不相信的要求(但我可能是错的,我只是没有testing过)

我有一个解决scheme,虽然它是一个商业相关的解决scheme,但您可以使用PolicyPak来创build一个GPO,它将pipe理几乎在Java中的每一个设置。 他们有试用模式和社区模式版本,可以免费试用或使用有限容量。 PolicyPak与Windows组策略集成,并且允许您比标准组策略lockingWindows的各个方面更有效地pipe理和locking第三方应用程序(如Java)的应用程序configuration设置。 它的Java白皮书的链接在这里http://www.policypak.com/products/manage-java-jre-with-group-policy.html和免费版本的链接在这里http.ploicypak&#x3002; com / support-sharing / policypak-trial-community-edition-fully-licensed-modes.html 。

Brad(PolicyPak的员工)