准备工作
配置PowerShell执行策略
检查执行策略,确保PowerShell允许运行脚本。打开PowerShell,输入以下命令检查当前执行策略:
Get-ExecutionPolicy
以下是不同的返回结果说明:
- Restricted:不允许执行任何脚本。
- AllSigned:只能运行由可信发布者签名的脚本。
- RemoteSigned:允许运行本地创建的脚本,但远程下载的脚本必须经过签名。
- Unrestricted:允许运行所有脚本,但会在运行从互联网下载的脚本时发出警告。
- Bypass:不阻止任何脚本的执行,不会显示任何警告或提示。
如果执行策略为Restricted或AllSigned,请通过以下命令临时更改策略,以允许运行本地创建的脚本和已签名的远程脚本。
Set-ExecutionPolicy RemoteSigned -Scope Process
该命令仅在当前PowerShell会话中更改执行策略,并在会话结束后恢复为默认策略。
CSV文件准备
username,ip,port,password
- username:该字段表示登录源端主机时所使用的用户名。为了确保脚本具有足够的权限执行修改操作,通常应使用具有管理员权限的用户名,如Administrator。
- ip:该字段表示源端主机的内网IP地址。
- port:该字段表示WinRM服务监听的端口号(默认是5985)。
- password:该字段表示登录源端主机时所需的密码。脚本将使用此密码通过WinRM协议自动登录到源端主机。
- CSV文件的第一行是标题行。
- CSV文件的每一行对应一台主机信息,并且每一列信息之间用英文逗号分隔。
- 确保格式正确和信息准确,不要出现多余的空格、逗号或无效的IP地址等。
username,ip,port,password Administrator,192.168.1.10,xx,examplePass123 Administrator,192.168.1.11,xx,examplePass456
Hosts文件准备
创建一个文本文件,包含需要追加到源端主机hosts文件中的内容,并确保该文件能被访问。文件内写入相关云服务的接口域名映射,并以#Migration-proxy-start开始,以#Migration-proxy-end结束。相关云服务的接口域名映射需要根据具体的环境而定,请联系对应局点的环境接口人获取。
#Migration-proxy-start xxx.xxx.xxx.xxx iam.xxx.com xxx.xxx.xxx.xxx ecs.xxx.com xxx.xxx.xxx.xxx evs.xxx.com xxx.xxx.xxx.xxx ims.xxx.com xxx.xxx.xxx.xxx obs.xxx.com xxx.xxx.xxx.xxx eps.xxx.com xxx.xxx.xxx.xxx vpc.xxx.com #Migration-proxy-end
日志目录准备
- 配置日志目录:脚本默认使用 C:\Users\Public\Hosts_Script_Logs 作为日志存储目录。目录不存在的话,脚本会自动创建,如果需要更改日志存储路径,请修改脚本中的 $logDir 变量的值。
- 检查日志目录权限:确保当前用户对日志目录有写入权限。如果权限不足,需要调整目录权限或选择其他路径。
检查网络连通性
- 网络连接检查:确认执行脚本的本地计算机能够通过网络访问所有源端Windows主机的IP地址和端口。源端Windows主机需要对执行脚本的主机开放 5985端口。
- 防火墙配置:检查并配置本地计算机和源端主机的防火墙,确保允许通过WinRM(Windows远程管理)连接进行远程PowerShell会话。
- 启用WinRM服务:确保所有源端Windows主机上的WinRM服务已启用并正常运行。可以在源端主机上使用以下命令启用WinRM:
Enable-PSRemoting -Force