1
votes

Recently, I was performing updates on one of our Windows 2003 Terminal Services. 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). 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.

Even accounts that have Administrator privileges that are not the account used to install are unable to use 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. 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.

While testing I went ahead and did the following:

  1. Uninstalled 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
  4. Restarted
  5. RDP into the machine as a standard user and tested Java RE and it worked perfectly

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.

1
Forgot to mention the Error when attempting to browse a site using Java. Title: Internet Explorer Message: The page you are viewing uses Java. More information on Java support is available from the Microsoft website. Options: Do not show this message again. (Checkbox); More Info; OKArachnid
Comparing the Java RE 1.7.0_5 & 1.6.0_33 on two different Windows Server 2003 VMs I found some interesting differences: 1.7.0_5: Does not place anything in C:\Windows\Downloaded Program Files\Arachnid
1.6.0_33: Places multiple (3) "Java Runtime Environment 1.6.0" entries which show a Status of Installed.Arachnid
Also noticed while reviewing the differences using Process Monitor (Sysinternals) that HKLM\Software\Microsoft\Code Store Database\Distribution Units\ is different. 1.6..0 has some Registry Keys in here for the Java Runtime Environment 1.6.0 where the 1.7.0 has nothing in this section of the Registry.Arachnid

1 Answers

1
votes

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.

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. So I first tried simply importing this key into the RDP user and this worked for the specific user account. However, I want all users to function so I then modified the keys to be HKLM (HKEY_LOCAL_MACHINE) and then imported the keys. This resolved the Java RE 1.7.0 issue for ALL USERS.

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.

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"