
# 概述
#### 背景介绍
当您迁移Windows主机时，需要确保源端主机能够解析相关云服务的接口域名。这通常涉及到在每台源端主机上编辑hosts文件。如果迁移的主机数量众多，手动编辑将非常耗时。为了简化这一过程，我们提供了一个批量修改的脚本示例。您可以利用这个脚本，快速地将域名解析IP批量追加写入到所有源端主机的hosts文件中。
#### 脚本说明
脚本是基于Powershell语言开发，仅支持在Windows系统上运行，实现对源端待迁移Windows主机的Hosts文件的批量更新和批量恢复。Hosts文件路径**C:\\Windows\\System32\\drivers\\etc\\hosts**
**脚本执行限制**：每次执行脚本时最多支持同时修改100台主机的hosts配置，以避免脚本执行时间过长。
**脚本功能与使用场景详细说明**参见下表。
| 脚本名                    | 功能描述                                                | 使用场景                                         |
|:---|:---|:---|
| update_hosts_win.ps1   | 批量更新源端Windows主机的hosts文件。脚本会自动记录操作日志，提示异常信息，并生成操作总结。 | 在迁移Windows主机之前，执行此脚本以更新源端主机的hosts配置。         |
| rollback_hosts_win.ps1 | 批量恢复源端Windows主机的hosts文件。脚本会自动记录操作日志，提示异常信息，并生成操作总结。 | 在完成Windows主机迁移后，执行此脚本以恢复源端主机的hosts配置到迁移前的状态。 |
   
#### PowerShell 版本和依赖项要求
PowerShell 远程处理依赖于 Windows 远程管理 (WinRM)，由 Windows Management Framework (WMF) 提供。
在 PowerShell 上运行远程会话，本地计算机和远程计算机必须满足以下要求：
- Windows PowerShell 3.0 或更高版本（推荐 WMF 5.1）。
- Microsoft .NET Framework 4.0 或更高版本。
- Windows 远程管理 3.0 或更高版本。
 
如果要在 Windows PowerShell 2.0 上运行远程会话，本地计算机和远程计算机必须满足以下要求：
- Windows PowerShell 2.0 或更高版本。
- Microsoft .NET Framework 2.0 或更高版本。
- Windows 远程管理 2.0版本。
 
在 PowerShell 3.0及更高版本上运行的功能（如会话断开和重连），仅在两台计算机都使用 PowerShell 3.0 或以上版本时可用。
使用以下命令可以检查 PowerShell 版本：
```
$PSVersionTable
```
