我想很多人都有这样的经历,我们有一个 Windows/Active Directory 环境和许多需要 Java 的内部业务线应用程序。我们的经验是,Java 在这样的企业网络环境中表现不佳。初始安装没问题(至少现在有 MSI),但保持一切正常运转可能是一个相当大的挑战。
我们遇到的具体问题包括:
- Java 有自己的更新程序,因此它与我们的内部补丁管理系统无关。
- 缺少任何通过 GPO 管理 Java 设置的工具。
- 要求用户手动配置某些设置。
- 每台机器上都有多个 Java 运行时(Oracle Jinitiator 是这里的罪魁祸首)。
- 关键设置文件存储在 Program Files 文件夹下。
对我们来说,这主要是一批登录脚本和一些黑客解决方法,但我有兴趣听听其他人如何处理这些项目,以及是否还有其他需要注意的事项。
答案1
针对你的每一个疑虑进行讨论:
几年来,我一直将 Java 运行时环境版本作为组策略中的软件安装任务进行部署。我禁用更新程序功能作为 MSI 的转换,并根据需要通过强制升级部署更新。如果计算机需要保留较旧的 JRE(因为某些应用程序需要它),我会使用安全组来阻止计算机接收较新的升级。(幸运的是,我不需要经常这样做。)
我使用 Microsoft 的 Orca 工具构建了 Sun 的 MSI 转换。如果能有 Adobe 的“自定义向导”之类的工具就好了,但我可以用 Orca 做任何我需要的事情。
我还没有遇到过让用户“手动配置某些设置”的情况,但我会用两种方式之一来处理。如果有些用户需要一些与“常规”不同的设置,我会部署组策略“首选项”来设置该设置(假设它位于注册表的用户部分),或者部署管理模板来更改该设置(假设它位于注册表的计算机部分)。如果要求允许用户按需更改设置,我会勉强更改注册表上的权限以允许用户(实际上是包含用户的安全组)这样做。勉强。
如果应用程序需要自己的 JRE,我会倾向于将该 JRE 的安装与部署应用程序的脚本/GPO 绑定在一起,并将两者视为一个单元。这是我能想到的最简单的处理方法。
我很难回忆起“Program Files”下有哪些设置,但如果需要的话,我会勉强向包含需要修改这些设置的用户帐户的安全组授予权限。我可能还会抱头咒骂 Sun。
在 Sun 针对 JRE 的企业部署和管理采取一致行动之前,我认为我们所有人都可能会使用一些不成熟的解决方法来解决这个问题。这令人沮丧,但不幸的是,这很常见。似乎绝大多数开发人员都不知道做系统管理员的工作是什么样的。<叹气>
答案2
实际上,我们必须处理许多第三方应用程序(包括 java)及其更新程序。
我们作为一个组织决定整合尼尼特作为我们的解决方案。访问网站并运行免费版本非常适合在任何 PC 上进行一次性设置,但是,当您在 ninite 上使用 Pro 时,您还可以获得无限一作为订阅的一部分。Ninite one 是您可以从命令行静默运行的程序,用于部署大量应用程序。
我很高兴地透露我们都是 PC,但总的来说,我们对这个解决方案非常满意。
Ninite One 有命令行开关禁用自动更新和在更新时创建桌面快捷方式等功能。这就是我们所做的,效果很好。但是,如果这是一项要求,它不允许使用多个版本的 Java,我不相信(但我可能是错的,我只是没有测试过)
答案3
我有一个解决方案,虽然这是一个商业相关的解决方案,但您可以使用 PolicyPak 创建一个 GPO,它将管理 Java 中的几乎所有设置。它们有试用模式和社区模式版本,您可以免费试用或以有限的容量使用。PolicyPak 与 Windows 组策略集成,允许您管理和锁定第三方应用程序(如 Java)的应用程序配置设置,甚至比标准组策略锁定 Windows 的各个方面更有效。其 Java Pak 的链接在这里 http://www.policypak.com/products/manage-java-jre-with-group-policy.html免费版本的链接在这里 http://www.policypak.com/support-sharing/policypak-trial-community-edition-fully-licensed-modes.html。
Brad(PolicyPak 员工)