我们希望确保下面的脚本将捕获所有需要的配置设置以在新机器上恢复 IIS 和所有安全设置。
'This script will dump a daily system state backup to the directory
' c:\sysstatebkup\ on every Intensive Server
Dim shell, network, fso
Set shell = CreateObject("WScript.Shell")
Set network = CreateObject("WScript.Network")
Set fso = CreateObject("Scripting.FileSystemObject")
Dim strBackup
strBackup = "ntbackup backup systemstate /j ""Daily System State Backup"" /f ""C:\SysBkUp\SystemState.bkf"" /v:yes /l:f"
shell.Run strBackup
注 1:感谢 Evan 的评论,由于他的回答,我将提供更多信息。我们想要完成的是:我们希望有一个非常好且易于恢复的 IIS 备份以及在其中运行的所有应用程序。我们有应用程序内容,但缺少 IIS 的实际配置。我将在下面列出我们需要备份的内容以及我们是如何完成的,因为这个问题只是整个解决方案的一部分:
- IIS应用程序内容(备份,我们想知道如何捕获某些目录的安全设置?)
- IIS 配置
- 连接到每个数据库的 MSSQL 数据库和安全设置
您只进行系统状态备份。这将包含注册表(包括 COM+ 注册)、Active Directory 和 SYSVOL(尽管我怀疑它是否安装在您的 Web 服务器上)、证书服务数据库(可能也未安装在您的 Web 服务器上)和 IIS 元数据库.
当您谈论恢复“安全设置”时,我无法说出您的意思。例如,您将无法恢复您未备份的文件上的 NTFS ACL(即网站内容——或者实际上是系统状态之外的任何内容)。对于您的应用程序,您将能够取回 IIS 元数据库和注册表。如果其中包含您描述为“安全设置”的所有内容,那么您的状态良好。
您真的不需要 VBScript 来调用该命令。您可以直接从计划任务调用它,因为您没有使用 VBScript 在备份命令行等中进行任何类型的变量替换。
顺便说一句,您对备份目标目录和 NTBackup 命令行的评论不同。
我会将 Systemstate 文件备份/复制到外部设备(例如,另一台服务器上的网络共享)。如果 C: 分区出现问题,该文件将位于安全的地方。
提示:花点时间尝试将所有数据和配置恢复到新(或暂存)服务器。根据我的经验,在您尝试恢复真实备份并测试所有服务之前,您总是看不到特定的东西。
我只会备份服务器上的所有内容。如果您的数据或设置发生变化,则为每周完整和每日差异。它更干净、更容易,而且您可以绝对确定您没有错过任何东西。
备份将特定于服务器名称和机器。因此,如果您从一台主机移动到另一台主机..
复制元数据库信息,
IIS 6.0 将早期 IIS 版本的单个二进制文件 (MetaBase.bin) 替换为两个 XML 文件:MetaBase.xml 和 MBSchema.xml。IIS 将这些文件存储在您计算机的 systemroot\System32\Inetsrv 文件夹中。要查看和修改这些文件,您必须是 Administrators 组的成员。
元数据库由以下元素组成:
• MetaBase.xml 文件。此文件存储特定于 IIS 安装的 IIS 配置信息。
• MBSchema.xml 文件。此文件包含元数据库架构。MBSchema.xml 文件是一个主配置文件,它定义所有元数据库属性的默认属性,并强制执行在元数据库中构建和放置元数据库条目的规则。
• 内存中的元数据库。内存中的元数据库包含最新的元数据库和元数据库架构配置。内存中的元数据库接受对元数据库配置和模式的更改,将它们存储在 RAM 中,并定期将更改写入磁盘元数据库和元数据库模式文件。
当 IIS 启动时,MetaBase.xml 和 MBSchema.xml 文件被 IIS 存储层读取并复制到内存中的元数据库中。在 IIS 运行时,您对内存中元数据库所做的任何更改都会定期写入磁盘。当您停止 IIS 时,IIS 还将内存中的元数据库保存到磁盘。
对于您可以编写脚本的文件安全性,请记住使用本地组并添加全局组以进行授权。