Windows server 2003(32位)终端服务上的Java RE 1.7.0存在问题?

Windows server 2003(32位)终端服务上的Java RE 1.7.0存在问题?,java,windows,terminal-services,Java,Windows,Terminal Services,最近,我正在对我们的一个Windows 2003终端服务进行更新。在更新过程中,我卸载了所有以前的Java RE版本,并重新启动,然后在管理员登录下使用添加/删除程序(对于终端服务安装模式)安装了Java RE 1.7.0。安装1.7.0后,即使在高级Internet Explorer 8 Internet选项页面中选中了“使用JRE 1.7.0_5 for(需要重新启动)”,RDP客户端都无法运行Java 即使具有管理员权限的帐户不是用于安装的帐户,也无法使用Java RE 1.7.0 使用测

最近,我正在对我们的一个Windows 2003终端服务进行更新。在更新过程中,我卸载了所有以前的Java RE版本,并重新启动,然后在管理员登录下使用添加/删除程序(对于终端服务安装模式)安装了Java RE 1.7.0。安装1.7.0后,即使在高级Internet Explorer 8 Internet选项页面中选中了“使用JRE 1.7.0_5 for(需要重新启动)”,RDP客户端都无法运行Java

即使具有管理员权限的帐户不是用于安装的帐户,也无法使用Java RE 1.7.0

使用测试(设置为“受信任站点”,以确保降低安全设置):

为了测试这一点,我启动了我的两个Windows2003虚拟机,它们以与测试类似的方式设置了组策略和终端服务。其他两个虚拟机在完全相同的区域内运行,使得除安装用户以外的任何用户都无法使用Java RE 1.7.0

在测试过程中,我进行了以下操作:

  • 已卸载Java RE 1.7.0
  • 重新启动
  • 在管理员帐户下使用相同的添加/删除程序方法安装Java RE 1.6 Update 33
  • 重新启动
  • RDP以标准用户的身份进入机器,并测试了JavaRE,它工作得非常好

  • 我认为Java RE 1.7.0中有一些东西在Windows Server 2003下的终端服务中没有正确安装。然而,我觉得很奇怪,我没有发现其他人在网上提到这一点。

    在使用Sysinternals Procmon.exe进行了大量跟踪之后,我发现在已安装的控制台用户和RDP用户之间的注册表项存在特定差异

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

    这些密钥对于正常工作的用户是存在的,但对于RDP用户帐户则是缺失的。因此,我首先尝试简单地将这个密钥导入RDP用户,这对特定的用户帐户有效。但是,我希望所有用户都能正常工作,因此我将密钥修改为HKLM(HKEY_LOCAL_MACHINE),然后导入密钥。这解决了所有用户的Java RE 1.7.0问题

    在我的情况下,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"
    

    在使用Sysinternals Procmon.exe进行了大量跟踪之后,我发现已安装的控制台用户和RDP用户之间的注册表项存在特定差异

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

    这些密钥对于正常工作的用户是存在的,但对于RDP用户帐户则是缺失的。因此,我首先尝试简单地将这个密钥导入RDP用户,这对特定的用户帐户有效。但是,我希望所有用户都能正常工作,因此我将密钥修改为HKLM(HKEY_LOCAL_MACHINE),然后导入密钥。这解决了所有用户的Java RE 1.7.0问题

    在我的情况下,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"
    

    在尝试使用Java浏览站点时忘记提及错误。标题:Internet Explorer消息:您正在查看的页面使用Java。有关Java支持的更多信息,请访问Microsoft网站。选项:不再显示此消息。(复选框);更多信息;Ok在两个不同的Windows Server 2003虚拟机上比较Java RE 1.7.0_5和1.6.0_33,我发现了一些有趣的差异:1.7.0_5:未在C:\Windows\Downloaded Program Files\1.6.0_33:放置多个(3)“Java运行时环境1.6.0”中放置任何内容显示已安装状态的条目。在使用Process Monitor(系统内部)查看差异时,还注意到HKLM\Software\Microsoft\Code Store Database\Distribution Units\不同。1.6..0在这里为Java运行时环境1.6.0提供了一些注册表项,其中1.7.0在注册表的这一部分中没有任何内容。在尝试使用Java浏览站点时,忘记提及错误。标题:Internet Explorer消息:您正在查看的页面使用Java。有关Java支持的更多信息,请访问Microsoft网站。选项:不再显示此消息。(复选框);更多信息;Ok在两个不同的Windows Server 2003虚拟机上比较Java RE 1.7.0_5和1.6.0_33,我发现了一些有趣的差异:1.7.0_5:未在C:\Windows\Downloaded Program Files\1.6.0_33:放置多个(3)“Java运行时环境1.6.0”中放置任何内容显示已安装状态的条目。在使用Process Monitor(系统内部)查看差异时,还注意到HKLM\Software\Microsoft\Code Store Database\Distribution Units\不同。1.6..0在这里有一些Java运行时环境1.6.0的注册表项,其中1.7.0在注册表的这一部分中没有任何内容。有道理,jp2iexp.dll是下一代Java插件,它在浏览器的进程空间之外执行。由于有很多安全专家,如Mikko Hyponen推荐。有道理,jp2iexp.dll是下一代Java插件,它在浏览器的进程空间之外执行。由于数量众多,安全专家如Mikko Hyponen建议。