尝试在Windows Server 2003或Windows XP中安装大型Windows Installer程序包或大型Windows Installer修补程序包时出现错误消息:“Error 1718. File was rejected by digital signature policy”(错误 1718。文件被数字签名策略拒绝)
========================
文章编号 : 925336
最后修改 : 2007年4月3日
修订 : 2.0
========================
重要说明:本文包含有关如何修改注册表的信息。修改注册表之前,一定要先对其进行备份,并且一定要知道在出现问题时如何还原注册表。有关如何备份、还原和修改注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 (http://support.microsoft.com/kb/256986/) Microsoft Windows 注册表说明
症状:尝试在运行 Microsoft Windows Server 2003 或 Microsoft Windows XP 的计算机上安装大型 Microsoft Windows Installer (.msi) 程序包或大型 Microsoft Windows Installer 修补程序 (.msp) 包时,将收到以下错误消息:
错误 1718。文件 FileName 被数字签名策略拒绝。
原因:当计算机没有足够的连续内存可供 Windows Server 2003 或 Windows XP 用于验证是否对 .msi 包或 .msp 包正确进行了签名时将出现此问题。
替代方法:
警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。
要解决此问题,请在尝试安装程序包之前将 PolicyScope 注册表值更改为 1。为此,请按照下列步骤操作。
注意:如果将计算机加入到域中,则域策略更新可能会覆盖您对注册表所做的更改。强烈建议在执行以下步骤之前从域中断开计算机。1. 依次单击“开始”和“运行”,键入 regedit,然后单击“确定”。
2. 在注册表编辑器中,找到并单击下面的注册表项:
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers
注意:在修改此注册表项之前,建议先备份此注册表项。为此,右键单击“CodeIdentifiers”,然后单击“导出”。将文件保存到可在计算机上找到此文件的位置中。
3. 更改 PolicyScope 的注册表值。为此,请双击“PolicyScope”,然后将设置从 0 更改为 1。
4. 关闭注册表编辑器。
5. 依次单击“开始”、“运行”,键入 cmd,然后单击“确定”以打开命令提示符窗口。
6. 在命令提示符下,键入以下命令并按 Enter:
net stop msiserver
如果 Windows Installer 服务当前正在后台运行,则此命令将停止该服务。该服务停止后,请关闭命令提示符窗口,然后转到步骤 7。
注意:如果在命令提示符处收到以下消息,请关闭命令提示符窗口,然后转到步骤 7:
未启动 Windows Installer 服务
7. 收到“症状”部分所述的错误消息后,请安装要尝试安装的程序包。
8. 安装了程序包之后,重复步骤 1 和 2。然后,将 PolicyScope 注册表值更改回 0。
9. 如果从域中断开了计算机,请重新加入域,然后重新启动计算机。
注意:如果未从域中断开计算机,则不必重新启动计算机。
如果以上步骤不能解决该问题,请按照下列步骤操作:1. 单击“开始”,单击“运行”,键入 control admintools,然后单击“确定”。
2. 双击“本地安全策略”。
3. 单击“软件限制策略”。
注意:如果未列出软件限制,请右击“软件限制策略”,然后单击“新建策略”。
4. 在“对象类型”下,双击“强制”。
5. 单击“除本地管理员以外的所有用户”,然后单击“确定”。
6. 重新启动计算机。 (测试成功)
重要说明:在按照以上步骤操作后,本地管理员就可以安装 .msi 包或 .msp 包。安装了程序包之后,请按照以上步骤重置强制级别。在步骤 5 中,单击“所有用户”而不是单击“除本地管理员以外的所有用户”。
更多信息
数字签名可帮助确保程序包不会被篡改。当 Windows Installer 调用 SaferIdentifyLevel 函数时,Windows Server 2003 和 Windows XP 使用其他安全级别,即软件限制策略。
当 Windows Installer 同时调用 SaferIdentifyLevel 函数和 SAFER_CRITERIA_IMAGEHASH 标志时,整个程序包被加载到计算机上的内存中。计算机必须拥有程序包大小所需的足够连续内存。如果计算机没有足够的连续内存,则会出现错误。由于出现错误,Windows Installer 将无法验证是否对该程序包正确地进行了签名。因此,会收到“症状”部分中提到的错误消息。
出现此问题时,以下日志数据将显示事件的顺序:MSI (s) (BA:AD) [12:00:00:000]:SOFTWARE RESTRICTION POLICY:Verifying object --> 'D:\WINDOWS\Installer\50baad.msp' against software restriction policy
MSI (s) (BA:AD) [12:00:00:000]:SOFTWARE RESTRICTION POLICY:D:\WINDOWS\Installer\50baad.msp has a digital signature
MSI (s) (BA:AD) [12:00:00:000]:SOFTWARE RESTRICTION POLICY:SaferIdentifyLevel reported failure.Assuming untrusted.. . (GetLastError returned 5)
MSI (s) (BA:AD) [12:00:00:000]:The installation of D:\WINDOWS\Installer\50baad.msp is not permitted due to an error in software restriction policy processing.The object cannot be trusted.
--------------------------------------------------------------------------------
这篇文章中的信息适用于:
| • | Microsoft Windows Server 2003 Standard Edition |
| • | Microsoft Windows Server 2003, Standard x64 Edition |
| • | Microsoft Windows Server 2003 Enterprise Edition |
| • | Microsoft Windows Server 2003, Enterprise x64 Edition |
| • | Microsoft Windows Server 2003 64-bit Enterprise Edition |
| • | Microsoft Windows Server 2003 Datacenter Edition |
| • | Microsoft Windows Server 2003, Datacenter x64 Edition |
| • | Microsoft Windows Server 2003, Datacenter Edition for 64-Bit Itanium-Based Systems |
| • | Microsoft Windows Server 2003 Web Edition |
| • | Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86) |
| • | Microsoft Windows Server 2003 R2 Standard Edition (64-Bit x86) |
| • | Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86) |
| • | Microsoft Windows Server 2003 R2 Enterprise Edition (64-Bit x86) |
| • | Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86) |
| • | Microsoft Windows Server 2003 R2 Datacenter Edition (64-Bit x86) |
| • | Microsoft Windows XP Professional Edition |
| • | Microsoft Windows XP Professional x64 Edition |
| • | Microsoft Windows XP Home Edition |
| • | Microsoft Windows XP Media Center Edition |
先从微软网站下载补丁.
下载地址1为:http://download.microsoft.com/download/6/3/c/63c69e5d-74c9-48ea-b905-30ac3831f288/VS80sp1-KB926601-X86-ENU.exe(英文版)
下载地址2为:http://download.microsoft.com/download/8/0/7/8071514d-9370-45c3-8af1-4ff09a70e59d/VS80sp1-KB926604-X86-CHS.exe(中文版)大约为430M。
2.作好打VS2005 SP1补丁之前的设置.
第一步:修改注册表,打开注册表(运行“regedit”)HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers,更改 PolicyScope 的注册表值,然后双击“PolicyScope”,将其值设置从 0 更改为 1。
第二步:打开“本地安全设置”(开始>>管理工具>>本地安全设置;或运行“control admintools”),双击“本地安全策略”,单击“软件限制策略”。(如果未列出软件限制,请右击“软件限制策略”,然后单击“新建策略”。)在“对象类型”下,双击“强制”。 然后单击“除本地管理员以外的所有用户”,然后单击“确定”,重启计算机后即可安装VS2005 SP1。
3.装了vs 2005之后再装补丁,系统提示说需要几分钟到几个小时不等.于是我们想办法让它提速
我们新建一个记事本,然后把以下内容复制进去:
reg export HKLM\Software\Policies\Microsoft\Windows\Installer installer.reg
reg add HKLM\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /t REG_DWORD /d 0 /f
net stop msiserver
start /wait E:\software\VS80sp1-KB926604-X86-CHS.exe这里是填写补丁地址
reg delete HKLM\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /f
reg import installer.reg
net stop msiserver
del /q installer.reg 2>nul
把填写地址那里改掉,那是我们vs2005 sp1补丁在电脑上的位置。再把文档重命名为:InstallVS2005SP1.bat
然后双击这个.bat文件运行,补丁自己就会安装了!
说明以下三点:
1,两文件放一个目录下
2,改.bat里面的内容,写入补丁路径
3,保存文件,双击运行
| 昵称 密码 游客无需密码 |
| 网址 电邮 注册 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |







