# IIS 配置备份与迁移：不要复制整台服务器

> 用 appcmd 备份、导出站点/配置 XML，理解共享配置，再迁移 IIS 到新主机。

**测试环境**

- 版本号: 26100.33650
- 版本: Standard / Datacenter
- 架构: x64
- 证据: E1
- 核验日期: 2026-10-29

## 一句话结论

IIS 配置主要在：

```text
C:\Windows\System32\inetsrv\config\applicationHost.config
```

站点级 `web.config` 也算。迁移需要**两者**，加上内容、证书和应用池身份。

`appcmd` 能快照/恢复服务器配置，但它不是内容或证书的完整备份。

## 配置备份

```powershell
C:\Windows\System32\inetsrv\appcmd.exe add backup "before-change"
C:\Windows\System32\inetsrv\appcmd.exe list backup
```

恢复：

```powershell
C:\Windows\System32\inetsrv\appcmd.exe restore backup "before-change"
```

备份在 `%windir%\system32\inetsrv\config\backup`。复制到服务器之外；同盘备份不是灾难恢复。

## 导出站点

```powershell
appcmd list site "Lab" /config /xml > C:\backup\lab-site.xml
appcmd list apppool "labpool" /config /xml > C:\backup\labpool.xml
```

目标机导入：

```powershell
appcmd add site /in < C:\backup\lab-site.xml
appcmd add apppool /in < C:\backup\labpool.xml
```

导入前审查 XML：物理路径、绑定、证书指纹、应用池名在目标机不一定存在。

## appcmd 不复制什么

- **内容**（`C:\inetpub\lab`）：单独复制，保留 ACL。
- **证书/私钥**：有意识地导出/导入 PFX，不要盲拷贝证书存储。
- **应用池身份**：虚拟账户是本地的；自定义账户/gMSA 要在目标机建。
- **`web.config`**：属于内容；检查机器相关路径。
- **日志**：证据，不是配置。
- **计划任务/服务**：单独处理。

## 共享配置

服务器场可以把 `applicationHost.config` 放 UNC 共享，并共享 `web.config`。这不是实验里的“下一步”：

- 共享必须高可用；
- 应用池身份要读权限；
- 加密提供程序/密钥要匹配；
- 网络中断会让所有节点挂。

真需要农场才用；单机保留本地配置 + 备份。

> **警告: 不要在生产手改 applicationHost.config**
>
> XML 坏了 W3SVC 可能起不来。用 IIS 管理器/appcmd，先备份，并保留控制台/远程恢复路径。

## 迁移检查表

1. 源机 `appcmd add backup`。
2. 导出站点/应用池 XML。
3. 复制内容 + ACL。
4. 导出/导入含私钥的证书。
5. 重建自定义身份/gMSA。
6. 导入站点/应用池，修路径/绑定。
7. 本机 Host 头测试；再改 DNS/防火墙。
8. 新机通过前，旧机保持只读。

## 实验室边界

E1。实验室在 Windows 11 建了 `Lab`/`labpool`，但没有做跨服务器迁移。命令是计划流程；Server 2025 上验证后再依赖。

## 来源

- [Microsoft Learn — applicationHost.config](https://learn.microsoft.com/zh-cn/iis/configuration/system.applicationhost/)

---

来源页面: https://winbook.fyi/zh/server/web/iis-config/
