简体   繁体   English

Windows Server 2003(32位)终端服务上的Java RE 1.7.0有问题吗?

[英]Issues with Java RE 1.7.0 on Windows server 2003 (32-bit) Terminal Services?

Recently, I was performing updates on one of our Windows 2003 Terminal Services. 最近,我正在对我们的Windows 2003终端服务之一进行更新。 During the updates I uninstalled all the previous Java RE versions restarted and then installed Java RE 1.7.0 under an Administrator Login using Add/Remove Programs (for Terminal Services Install Mode). 在更新期间,我卸载了所有以前的Java RE版本,然后重新启动,然后使用添加/删除程序(对于终端服务安装模式)在管理员登录下安装了Java RE 1.7.0。 After installing 1.7.0 none of the RDP Clients are able to run Java even though "Use JRE 1.7.0_5 for (requires restart)" is checked in their Advanced Internet Explorer 8 Internet Options page. 安装1.7.0之后,即使在“高级Internet Explorer 8 Internet选项”页面中选中了“将JRE 1.7.0_5用于(需要重新启动)”,RDP客户端也无法运行Java。

Even accounts that have Administrator privileges that are not the account used to install are unable to use Java RE 1.7.0. 即使具有管理员特权而不是用于安装的帐户的帐户也无法使用Java RE 1.7.0。

Tested using (set as "Trusted Sites" to ensure security settings are lowered): 使用进行了测试(设置为“受信任的站点”以确保降低安全设置):

In order to test this I went ahead and fired up a couple of my Windows 2003 VMs that have Group Policies & Terminal Services setup in a similar fashion to test. 为了对此进行测试,我继续并启动了一些Windows 2003 VM,这些Windows 2003 VM具有以类似方式进行测试的组策略和终端服务设置。 The other two VMs behaved in the exact same manor making any user other than the Install user unable to use Java RE 1.7.0. 其他两个VM的行为方式完全相同,这使安装用户以外的任何用户都无法使用Java RE 1.7.0。

While testing I went ahead and did the following: 在测试时,我继续进行以下操作:

  1. Uninstalled Java RE 1.7.0 卸载的Java RE 1.7.0
  2. Restarted 重新启动
  3. Installed Java RE 1.6 Update 33 using the same Add/Remove Programs method under an administrator account 在管理员帐户下使用相同的“添加/删除程序”方法安装了Java RE 1.6 Update 33
  4. Restarted 重新启动
  5. RDP into the machine as a standard user and tested Java RE and it worked perfectly 以标准用户的身份将RDP导入计算机并测试了Java RE,它运行良好

I'm thinking there is something in the Java RE 1.7.0 that is not installing properly for Terminal Services under Windows Server 2003. However, I find it really odd that I haven't found anybody else mention this on the web. 我认为Java RE 1.7.0中的某些内容无法在Windows Server 2003下为Terminal Services正确安装。但是,我发现我在网络上找不到其他人提及此事,这确实很奇怪。

After a lot of tracing with Sysinternals Procmon.exe I found a specific difference in Registry Keys between the Installed Console user and the RDP user. 在使用Sysinternals Procmon.exe进行了大量跟踪之后,我发现已安装的控制台用户和RDP用户之间的注册表项存在特定差异。

HKCU\\Software\\Classes\\CLSID\\{CAFEEFAC-0017-0000-0005-ABCDEFFEDCBB}\\ HKCU\\Software\\Classes\\CLSID\\{CAFEEFAC-0017-0000-0005-ABCDEFFEDCBB}\\InprocServer32 HKCU\\Software\\Classes\\CLSID\\{CAFEEFAC-0017-0000-0005-ABCDEFFEDCBB}\\ HKCU\\Software\\Classes\\CLSID\\{CAFEEFAC-0017-0000-0005-ABCDEFFEDCBB}\\InprocServer32

These keys existed for the functioning user but were missing for the RDP user accounts. 这些密钥对于正常运行的用户而言是存在的,但对于RDP用户帐户而言则是缺失的。 So I first tried simply importing this key into the RDP user and this worked for the specific user account. 因此,我首先尝试仅将该密钥导入RDP用户,并且该密钥适用于特定的用户帐户。 However, I want all users to function so I then modified the keys to be HKLM (HKEY_LOCAL_MACHINE) and then imported the keys. 但是,我希望所有用户都能正常工作,因此我将密钥修改为HKLM(HKEY_LOCAL_MACHINE),然后导入了密钥。 This resolved the Java RE 1.7.0 issue for ALL USERS . 这解决了所有用户的Java RE 1.7.0问题。

In my situation the Java RE is installed to D:\\Program Files\\Java\\Jre7\\ you will have to modify the registry key according to your install path. 在我的情况下,Java RE已安装到D:\\ Program Files \\ Java \\ Jre7 \\,您将必须根据您的安装路径修改注册表项。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{CAFEEFAC-0017-0000-0005-ABCDEFFEDCBB}]

@="Java Plug-in 1.7.0_05"

[HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{CAFEEFAC-0017-0000-0005-ABCDEFFEDCBB}\InprocServer32]

@="D:\\Program Files\\Java\\jre7\\bin\\jp2iexp.dll"

"ThreadingModel"="Apartment"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM