更新时间:2023-08-02 GMT+08:00

制作Windows空壳镜像

镜像准备

准备一台Windows Server 2019 Standard 64bit English镜像(注意是**English版本,不限制Server版本),系统盘40GB。下发ECS时请设置符合规范的密码,主机名请设置为SMS。请使用微软官方的镜像即可。

由于需要安装一些模块,因此需要能访问公网

软件安装与下载

  1. 请参考制作代理镜像脚本获取代理镜像脚本smsWindowesAgent。
  2. 安装python3.7.6到C:\smsWindowsAgent\Python目录下。不限制python版本。

  3. 使用where python指令,查看python是否安装在固定文件夹。

安装requests,configparser等第三方库

执行如下命令,安装requests,configparser。

pip install requests
pip install configparser

修改镜像

  1. 设置程序开机自启动。

    1. cmd窗口中输入gpedit,打开组策略。依次打开Computer Configuration下 Windows Settings--->Scripts (Startup/Shutdown)--->Startup

    2. 添加路径 C:\smsWindowesAgent\bin\runPython.bat开机自运行的脚本,请根据需要更换,单击“OK" 。

  2. 安装openssh。

    1. 右键单击开始按钮(或按Win+X组合键)弹出系统快捷菜单,选择“Windows PowerShell(管理员)”,在打开的“管理员: Windows PowerShell”窗口中输入并回车运行以下命令:
      Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
    2. 安装完成后重启系统即可生效。继续运行以下命令启动 sshd 和 ssh-agent 服务并设置为自动启动:

      启动sshd

      Start-Service sshd

      设置sshd开机自启动

      Set-Service sshd  Automatic

      启动ssh-agent

      Start-Service ssh-agent

      设置ssh-agent开机自动启动

      Set-Service ssh-agent -StartupType Automatic
    3. 在C:\ProgramData目录下搜索sshd_config文件,增加如下配置:

      PasswordAuthentication no

  3. 安装OpenStack。

    因为sms迁移需要注入相关驱动,所以需要将vmtools中的驱动放在迁移镜像中。下载地址:vmtools下载地址

    下载后需要解压并提取相关文件到代理镜像指定目录,在./vmtools-windows/upgrade/(Windows7/Windwos2012/~~~)/drivers下面存放的是windows所需的驱动。

    需要把所有驱动拷贝到sms迁移对应的文件夹中。

    以windows2016_64为例:

    拷贝upgrade\windows 2016_64\drivers\viostor下的所有文件到代理镜像C:\smsWindowsAgent\bin\peAgent\OpenStack\windows_device_driver\Windows2016_64下。

    同样方式拷贝upgrade\windows 2016_64\drivers目录下的其他目录下的文件到C:\smsWindowsAgent\bin\peAgent\OpenStack\windows_device_driver\Windows2016_64下。

    拷贝完成后C:\smsWindowsAgent\bin\peAgent\OpenStack\windows_device_driver\Windows2016_64下文件

    Windows2008和windows2016等相关文件都需要进行拷贝。

  4. cmd执行如下命令开启8899,8900端口

    netsh advfirewall firewall add rule name=peagent dir=in action=allow protocol=TCP localport=8899
    netsh advfirewall firewall add rule name=ntcldst dir=in action=allow protocol=TCP localport=8900

  5. (可选)非公共镜像,需要安装密码重置插件。

    1. 下载插件,下载地址:https://cn-south-1-cloud-reset-pwd.obs.cn-south-1.myhuaweicloud.com/windows/reset_pwd_agent/CloudResetPwdAgent.zip
    2. 依次双击“CloudResetPwdAgent.Windows”或“CloudResetPwdUpdateAgent.Windows”文件夹下的“setup.bat”,安装密码重置插件。
    3. 在任务管理器中查找cloudResetPwdAgent服务或cloudResetPwdUpdateAgent服务。
      • 如果有,表示安装成功。
      • 如果没有,表示安装失败。

安全加固(可选):

  1. 关闭远程登录。

    Comntrol Panel -->System and Security -->System --> Allow remote access

  2. 关闭winrm服务。

    1. 打开命令提示符或PowerShell窗口,以管理员身份运行。
    2. 输入以下命令,停止winrm服务

      net stop winrm

    3. 输入以下命令,禁用Winrm服务:

      sc config winrm start= disabled

  3. 设置密码登录策略(防止暴力破解)。

    1. 打开命令提示符或Powershell窗口,以管理员身份运行。
    2. 输入gpedit.msc打开组策略。
    3. 依次打开Computer Configuration - ->Windows settings -->Security Settings -->Account Policy -->Account Lockout Policy,可以如下图设置账户锁定策略(登录6次失败,锁定3分钟)。

  4. Windows防火墙关闭监听其他端口。

    1. 打开cmd窗口,使用netstat -ano命令查看监听的端口。

    2. 关闭所有的用来监听的动态端口(49152-65535)以及135端口。
      netsh advfirewall firewall add rule name=Tcp_disable dir=in action=block protocol=TCP localport=135,3389,5985,5986,49152-65535
    3. 关闭所用的udp端口。
      netsh advfirewall firewall add rule name=Tcp_disable dir=in action=block protocol=UDP localport=any

生成镜像ID

  1. 在控制台,查找IMS服务,进入IMS服务。
  2. 选择创建镜像。

  3. 选择需要代理镜像的ECS,创建系统盘镜像。

  4. 获取镜像id。