NoteExpress v2.6.1.1482多用户BUG

系统情况如下:

  • 操作系统Windows 7 中文
  • Office 2007 英文版
  • Kaspersky 2011 中文

全部正版。日常使用的是普通帐号(非管理员帐号)。下载了NoteExpress v2.6.1.1482后,安装时,提示需要管理员权限,提升到管理员帐号成功安装。

症状:

安装完成,不离开NE安装界面直接启动NE,成功(这时其实NE仍运行在管理员帐号下,因为安装已经提升到管理员帐号)。关闭安装界面,使用普通帐号打开NE,失败,提示该帐号下的Roaming目录下的NE配置文件失败。使用“以管理员权限运行”NE,成功。

以普通帐号打开Word,没有发现NoteExpress。以管理员权限打开Word,NE出现在Word界面上,正常运行。

以普通帐号打开Word,在Word选项里进入COM加载管理,没有发现NE项,通过Add… 将NE安装目录下的NEWordAddin2.dll 添到里面。关闭异常。再次打开Word,发现NE COM为inactive,无法正常添加。需要指出,如果运气太好,这时NE COM addin 添加成功了,那么每次打开word 都出现异常。这时请运行regedit,将HKEY_CURRENT_USERSoftwareMicrosoftOfficeWordAddinsNEWordAddin2.WordAddIn2删除,便可以正常启动Word。

原因:

NE在安装时,由于权限提升而导致用户帐号变化,错误地将一些必要配置文件写到管理员帐户下。

解决方案:

1. 每次运行NE,以管理员权限打开。相应的,也需要以管理员权限打开Word。不幸的是,由于权限控制,管理员帐户和当前普通帐号有不同的个人目录,比如这时NE打开的“我的目录”是管理员帐户的“我的文档”,而不是当前普通帐号的“我的文档”,再比如,无法将自己的桌面(当前普通帐号)上的文件拖到NE(运行在管理员权限下)附件里,诸如此类,很多不便。

2. 进到 C:Users<管理员帐号>AppDataRoaming 下,将其下的NoteExpress2目录里的全部目录和文件拷贝到当前普通帐号的对应位置,即C:Users<当前普通帐号>AppDataRoaming 下。在Word里打开Word选项,在COM加载项里添加NE安装目录下的NEWordAddin2.dll 。这样,普通帐号便可以正常运行NE了。

如果在COM加载项里原先已经有不打勾的NE,先将之移掉,重启Word,再行添加。

方案2无法回避的问题是,当NE有新版本出来,再行安装后,NE又将新的配置文件安装到管理员帐户下,无法对当前普通帐户进行自动更新,需要手工将Roaming下的对应NoteExpress 目录拷贝到当前帐户对应位置下。这个问题的解决,需要NE开发人员的修正。

然而,我前面在NE技术论坛上指出多用户下的这种BUG,有管理人员回复说,技术人员会进行测试,但我不认为NE技术人员意识到这种问题,并认真测试了。

要重放以上问题,准备2个干净的帐户(干净是指此前没有安装过NE),一是普通帐户,一是管理员帐户,使用干净普通帐户进行安装,安装时提升到干净的管理员帐户,应当可以reproduce描述的症状。

3. NE开发人员,在帐户提升的情况下,配置文件的安装应当是在当前普通帐户下,而不是提升后的管理员帐户下。

匆忙记录,错误在乎难免,请指正。

此BUG已经报告给NE相关人员,并在2.6.1.1508以后版本中得以修正。

Leave a Reply

Your email address will not be published. Required fields are marked *