欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Windows 安装IIS出现的问题(无法安装IIS,提示“安装程序无法复制文件IISApp.vbs”)

程序员文章站 2022-06-13 19:06:56
这就是典型的windows安全数据库出问题了,可以用以下方法来解决这个问题: windows安全资料库,在%windir%\security\database里。 *的资...
这就是典型的windows安全数据库出问题了,可以用以下方法来解决这个问题:

windows安全资料库,在%windir%\security\database里。
*的资料库,大陆称为数据库。 在windows作业系统里带有专门的esentutl.exe工具,这是一个dos工具,可用来查看和修复windows安全资料库。

比如我有一次在安装iis的元件时,发生了错误:
************************
复制错误 安装程式无法复制档 iisapp.vbs。 请确认下面指定的位置是正确的,或者更改它并在指定的驱动器中插入 'service pack 1 cd-rom'。
当复制来源: c:\windows\servicepackfiles\i386 [浏览] [重试] [取消]

************************
这就是由于windows安全资料库损坏所致。可用esentutl.exe进行修复。

查看它的用法,用下面指令: esentutl /? 会显示如下提示:
microsoft(r) windows(r) database utilities version 5.2 copyright (c) microsoft corporation. all rights reserved. description: maintenance utilities for microsoft(r) windows(r) databases. modes of operation: defragmentation: esentutl /d [options] recovery: esentutl /r [options] integrity: esentutl /g [options] checksum: esentutl /k [options] repair: esentutl /p [options] file dump: esentutl /m[mode-modifier] <<<<< press a key for more help >>>>>
d=defragmentation, r=recovery, g=integrity, k=checksum, p=repair, m=file dump =>

可见,检查资料库的完整性,要用/g,比如: esentutl /g c:\windows\security\database\secedit.sdb

若要修复这个windows安全资料库,用如下指令: esentutl /p c:\windows\security\database\secedit.


用esentutl工具修复系统数据库1

windows具有大量互相关联的数据库。当然,主要的数据库就是注册表,其中包含了系统、用户以及应用程序设置的全部信息。然而,windows还包含大量你通常没有听说过的其他数据库。这些数据库以系统数据库文件形式保存,后缀为sdb。其中一些记录了应用程序的安装。你会发现通常他们的文件名为setup.sdb。另一些记录了service pack的状态,具有类似这样的文件名:apphelp.sdb, apph_sp.sdb, drvmain.sdb, msimain.sdb以及sysmain.sdb。还有其他的数据库来跟踪安全或其他不在注册表中显示的系统设置,如secedit.sdb。简而言之,windows在除注册表以外的地方隐藏了大量的信息。你可以用“可扩展存储引擎技术工具“(extensible storage engine technology utility, esentutl)来访问所有这些其他数据库。

并不是你硬盘上每个sdb文件都是数据库。混乱的是微软也把sdb扩展名用在一些文本文件上。比如,visual studio的setup.sdb就是个文本文件。该文件能够告诉你许多关于应用的信息,但这些信息不是esentutl能够管理的格式。正确的sdb文件包括二进制数据。

警告:esentutl工具极端强大。在错误的文件上不正确地应用,会抹去安全信息或者使你的系统无法启动。因此,在你使用它之前确保你完全理解该工具。在修改任何数据库之前记得先做备份。在做之前通过微软知识库(microsoft knowledge base)尽可能多地验证这些修改。

esentutl工具并不为你提供很多帮助信息。实际上,你很难在所有windows帮助文件或者很多其他微软的资源中找到提及该工具的地方。你能找到提到它的一个地方就是微软知识库。许多windows问题需要你用esentutl工具来修复。你可以通过用“esentutl site:support.microsoft.com”作为关键字在google搜索到来自微软知识库的一些有关该工具使用的例子。

esentutl运行有几种模式。每种模式对sdb文件执行不同的任务。这里是每种模式的语法:

碎片整理模式: esentutl /d <数据库文件名> [选项]

恢复模式: esentutl /r [选项]

完整性检查模式: esentutl /g <数据库文件名> [选项]

修复模式: esentutl /p <数据库文件名> [选项]

校验模式: esentutl /k <数据库文件名> [选项]

文件转储模式: esentutl /m[模式修改符] <文件名>

复制模式: esentutl /y <源文件> [选项] ***仅用于vista操作系统***

上述选项根据模式而不同。然而,有些选项在所有模式中通用。这里是通用选项:

/8 定义数据库分页大小为8kb。正常情况下,esentutl自动检测分页大小。只有当微软知识库告诉你或者读取数据库遇到问题时才使用该选项。

/o 禁用微软徽标。你可以用该选项来创建报表输出或者作为另一个数据库的输入。

/s <流文件名> 为流数据输出设置文件名。默认设置是none。当你想用流数据技术——而不是简单的转储——来发送数据时使用该选项。该选项适用于碎片整理、完整性检查、修复以及文件转储模式。

/t <数据库文件名> 设置临时数据库文件名。默认设置是temp-dfrg*.edb。通常,你无需更改数据库文件名因为esentutl已经支持多个临时数据库。该选项适用于碎片整理、完整性检查以及修复模式。

注意:某些模式针对不同的目的使用同样的选项开关。因此,不要假定在碎片整理模式中的/f开关和完整性检查模式的/f开关执行同样的任务。