Chinaunix首页 | 论坛 | 博客
  • 博客访问: 871168
  • 博文数量: 160
  • 博客积分: 420
  • 博客等级: 准将
  • 技术积分: 4566
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-04 00:31
文章分类

全部博文(160)

文章存档

2011年(13)

2010年(3)

2009年(63)

2008年(81)

分类:

2009-03-05 12:28:47

今天sqshiqi)使用我的office2003盘安装时,总是提示“系统管理员设置了系统策略,禁止进行此安装”,可是ldl前段时间刚用这张盘安装过,没有问题。

 

       按照提示,首先想到的自然是组安全策略,看了一下gpedit.msc的东西,也看不出来什么异常,于是baidu…………,百度知道里一堆解决方法,不过很幸运的有个人说,很多方法他都试过了,不管用,删除了一项注册表项就解决了。具体解决方法如下。

 

*****************************************

 

解决方法来源:败亦枭雄/blog/item/f9a8f2f96a5fa95e242df241.html

 

14.提示系统管理员设置了系统策略,禁止进行此项安装”Microsoft Office 2003无法安装

症状:
Microsoft Office 2003无论哪个版本的,机子都无法安装,总是初始化完后提示如图,还有每次开机总是弹出Windows Installer安装。

反馈:

删除HKEY_CLASSES_ROOT\Installer\Products\4080110900063D11C8EF10054038389C

 

 

*****************************************

       sq的电脑里products表项下只有两项,而我的大概有30项……,我看了一下我的4080110900063D11C8EF10054038389C表项下的键,大概是office的一些相关信息,联想到sq说的她以前装过office,后来卸载了,应该是这些操作造成的。

    主要键值:

Windows Registry Editor Version 5.00

 

[HKEY_CLASSES_ROOT\Installer\Products\4080110900063D11C8EF10054038389C]

"ProductName"="Microsoft Office Professional Edition 2003"

"PackageCode"="46BF90F93CE4D5946A38B0C4BF474370"

"Language"=dword:00000804

"Version"=dword:0b0015ee

"Assignment"=dword:00000001

"AdvertiseFlags"=dword:00000184

"ProductIcon"="D:\\WINDOWS\\Installer\\{90110804-6000-11D3-8CFE-0150048383C9}\\misc.exe,6"

"InstanceType"=dword:00000000

"AuthorizedLUAApp"=dword:00000000

"Clients"=hex(7):3a,00,00,00,00,00

*****************************************

在网上查找这个问题时,有人说删除这个注册表项会导致CPU占用100%。具体可参考下文:

 

 

Office 2007 绿色软件站专用版(第一版)是SNEAR的作品,本人觉得这个作品近乎完美,只写了及少的注册表,也使用了及少的文件,可以说是OFFICE绿化中的精品。

但是本人觉得还是存在一些问题,比如CPU占用100%的问题,文件和注册表还是不够精简等.本人经过一个多星期的测试和研究对也做了一个修正上述问题的最小版本,只有12个文件,注册表也做了进一步的优化。

1.CPU
占用100%问题的解决:实际上CPU占用问题与注册表的很多项有关,经过本人测试,下面的注册表项中缺少任何一项都会导致CPU占用100%问题。


一是必须存在HKEY_CLASSES_ROOT\Installer\Products\4080110900063D11C8EF10054038389C注册表项,其下面的所有键值都可以删除;


二是必须存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\4080110900063D11C8EF10054038389C\InstallProperties注册表项,可以只保留"WindowsInstaller"=dword:00000001即可;


三是MSO.DLL和对应的可执行EXE文件必须写入注册表的组件项目,即在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components对应的EXE和公用MSO.DLL组件路径。但是在这里我注意到一个有意思的问题,如果删除HKEY_CLASSES_ROOT\Installer\Products\4080110900063D11C8EF10054038389C注册表项目,那么就可以不用OPA11.BAK文件了而不会提示当前用户没有安装OFFICE的提示了,同时启动WORD也不会提示由于出现错误什么来的了,但是却会使CPU占用达到100%,这犹如熊掌与鱼二这不可得兼,不知道当时SNEAR同志是不是也是这样的问题,为了屏蔽WORD启动错误提示(启动错误提示已经解决,注册表增加WORD特性即可)和去掉OPA11.BAK文件才精简掉注册表项从而使CPU占用100%,我这里采用保留OPA11.BAK文件以次来解决CPU占用问题,原因在于这个文件也并不是很大,不到10K,再说启动提示错误并不影响操作,瑕不掩玉,如果是CPU出现100%占用,那就无法做其他事情了。



2.
注册表还可以进一步精简:看了SNEAR的注册表,比较精简,但是文件关联部分却占了多半内容,我觉得可以简化为如下注册表项目,通用性好而且修改方便,放之四海皆准。以DOC文件关联为例六行就可以搞定:

[HKEY_CLASSES_ROOT\.doc]
@="doc_file"
[HKEY_CLASSES_ROOT\doc_file\shell\open\command]
@="\"D:\\OFFICE2003\\OFFICE11\\WINWORD.EXE\" \"%1\""
[HKEY_CLASSES_ROOT\dot_file\DefaultIcon]
@="D:\\OFFICE2003\\OFFICE11\\WINWORD.EXE,0"


3.
文件也可以进一步精简:经过本人研究发现,OFFICE2003居然不用使用MSOHEV.DLL也可以照样运行,而且精简掉这个文件还有一个好处就是卸除OFFICE的时候就可以完整的卸掉OFFICE而不会出现说无法删除MSOHEV.DLL文件的提示了。下面对其他保留的文件做一个说明,让大家知道这些保留的文件到底是做什么的。

POWERPNT.EXE
WINWORD.EXEEXCEL.EXE:这三个文件就不多说了吧,如果想精简掉哪个办公组件你可以直接删除其中需要删除的就可以了。

PPINTL.DLL
WWINTL.DLLXLINTL32.DLLMSO.DLLMSOINTL.DLL:这五个文件其实就是POWERPNT.EXEWINWORD.EXEEXCEL.EXE对应的初始化文件和资源文件,别小看这五个文件,还非常用有的,有什么用?呵呵,你自己去发现吧。

GDIPLUS.DLL:
绘图单元,实际就是OFFICE中绘图的插件了,如果删除这个文件,只有WORD可以启动,其他都无法启动,而且无法绘制图形了;但是在OFFICE2000中并不存在这个文件,而是直接整合到EXE中了。

XLLEX.DLL:EXCEL
词典文件,这个文件必须保留,否则EXCEL无法启动。

ID_011.DPC
OPA11.BAK:这两个文件就不用介绍了吧,我具体也不知道做什么的。不过至于ID_011.DPC这个文件与网上前段时间说的EXCELWORD不能同时说法,本人持不同的看法。原因在于,我只装ACCESS,卸掉干净后再装WORDEXCEL等组件,发现互相替换都可以使用,这说明EXCELWORD等不能同时使用的根源根本不在于该文件;我感到越发好奇了,最后我干脆删除改文件,然后运行WORDEXCEL等组件,发现一个奇怪的现象,如果恢复改文件,只要先前没有运行的组件则可以继续使用,运行过的组件一律提示没有安装正确,我想应该是注册表的问题,于是重新导入注册表,所有组件又可以同时使用了,这说明这个文件与注册表有着密切的关联。我以前在制作绿色软件的过程中发现只要安装好OFFICE组件后不运行该组件,那么导出注册表后制作的绿色软件也会有同样的提示,如果运行后再导出则不会出现这个提示,记得以前这个问题是因为Licensing只有安装后运行一次后才能产生,跟着这个思路:我重新删除ID_011.DPC文件,并运行WORD,发现WORD对应的HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\Licensing下的授权信息自动被删除了,没有运行的组件对应的授权信息则没有删除,我突然明白了原理居然是一样的,最后简单的可以得出结论:OFFICE组件对应HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\Licensing的授权信息是通过ID_011.DPC文件来检测是否存在的,运行WORD等组件时如果发现不存在如果不存在ID_011.DPC文件,则自动删除对应的授权信息,如果存在改文件而注册表中没有对应的授权信息则提示这个没有安装的错误提示从而无法使用相应组件。

这里还需要说明的是因为去掉了vbe6.dllVBA编程环境文件,所以启动EXCEL时会提示找不到该文件,但不影响使用的。


这个应该算精简的不能在精简了,注册表不到100行,文件WINRAR打包后只有18MB。如果你想测试下请把相关文件以上12个文件按照下列方式排列,并把上述注册表内容保存为注册表文件并导入即可,如果你想修改路径可以替换注册表对应路径即可。

D:\OFFICE2003\OFFICE11\EXCEL.EXE
D:\OFFICE2003\OFFICE11\GDIPLUS.DLL
D:\OFFICE2003\OFFICE11\MSO.DLL
D:\OFFICE2003\OFFICE11\OPA11.BAK
D:\OFFICE2003\OFFICE11\POWERPNT.EXE
D:\OFFICE2003\OFFICE11\WINWORD.EXE
D:\OFFICE2003\OFFICE11\2052\ID_011.DPC
D:\OFFICE2003\OFFICE11\2052\MSOINTL.DLL
D:\OFFICE2003\OFFICE11\2052\PPINTL.DLL
D:\OFFICE2003\OFFICE11\2052\WWINTL.DLL
D:\OFFICE2003\OFFICE11\2052\XLINTL32.DLL
D:\OFFICE2003\OFFICE11\2052\XLLEX.DLL

阅读(3860) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~