Windows Server 2022 批量创建 500 台 Hyper-V 虚拟机完整解决方案,批量部署脚本

admin 2025年2月7日15:51:03评论28 views字数 2771阅读9分14秒阅读模式

步骤 1:启用 Hyper-V 功能

以管理员身份运行 PowerShell 执行以下命令:

# 安装 Hyper-V 角色并重启Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

步骤 2:生成 Windows 10 模板

2.1 创建模板虚拟机

手动操作:

  1.  1、使用 Hyper-V 管理器创建一台 Windows 10 虚拟机(内存 16GB,硬盘 1024GB)。
  2.  2、安装操作系统并完成初始化配置(激活、更新、安装工具等)。
  3.  3、通用化镜像(避免 SID 冲突):
    •       在 Windows 10 虚拟机中运行:
      C:WindowsSystem32Sysprepsysprep.exe /generalize /oobe /shutdown
 4、虚拟机自动关闭后,将虚拟硬盘文件(.vhdx)保存为模板,例如:
C:HyperVTemplatesWin10_Base.vhdx

步骤 3:批量生成 500 台虚拟机的脚本

3.1 创建 PowerShell 脚本 Create-500VMs.ps1

# 定义全局参数$vmPrefix = "Win10VM"         # 虚拟机名前缀(如 Win10VM001)$vmCount = 500                # 虚拟机数量$baseVHDPath = "C:HyperVTemplatesWin10_Base.vhdx"  # 模板路径$vmParentPath = "C:HyperVVMs"         # 虚拟机存储根目录$vSwitchName = "ExternalSwitch"         # 虚拟交换机名称(需提前创建)$memoryPerVM = 16GB           # 每台虚拟机内存(16GB)$diskSize = 1024GB            # 每台虚拟机硬盘大小(1024GB)$cpuCoresPerVM = 4            # 每台虚拟机 CPU 核心数# 检查 Hyper-V 模块是否加载if (-not (Get-Module -ListAvailable -Name Hyper-V)) {    Write-Host "错误:Hyper-V 模块未安装!" -ForegroundColor Red    exit}# 创建存储目录New-Item -Path $vmParentPath -ItemType Directory -Force -ErrorAction Stop# 批量创建虚拟机(使用差异磁盘优化存储)for ($i = 1; $i -le $vmCount; $i++) {    $vmName = "$vmPrefix$($i.ToString('000'))"  # 名称格式:Win10VM001    $vmPath = "$vmParentPath$vmName"    $diffVHDPath = "$vmPath$vmName.vhdx"    try {        # 创建虚拟机目录        New-Item -Path $vmPath -ItemType Directory -Force        # 创建差异磁盘(基于模板)        New-VHD -ParentPath $baseVHDPath -Path $diffVHDPath -Differencing -SizeBytes $diskSize        # 创建虚拟机        New-VM -Name $vmName -MemoryStartupBytes $memoryPerVM -Path $vmPath -VHDPath $diffVHDPath -Generation 2 -SwitchName $vSwitchName        Set-VMProcessor -VMName $vmName -Count $cpuCoresPerVM        # 配置动态内存(可选)        Set-VMMemory -VMName $vmName -DynamicMemoryEnabled $true -MinimumBytes 8GB -MaximumBytes $memoryPerVM        Write-Host "[成功] 虚拟机 $vmName 已创建" -ForegroundColor Green    } catch {        Write-Host "[失败] 虚拟机 $vmName 创建失败:$_" -ForegroundColor Red    }}Write-Host "所有虚拟机已创建完成!" -ForegroundColor Cyan

3.2 脚本使用方法

  1.    1、将脚本保存为 Create-500VMs.ps1
  2.    2、以管理员身份运行 PowerShell,执行以下命令:
Set-ExecutionPolicy RemoteSigned -Force  # 允许脚本运行.Create-500VMs.ps1

步骤 4:虚拟交换机配置(如未提前创建)

运行以下命令创建外部虚拟交换机(需替换 Ethernet1 为实际网卡名称):

New-VMSwitch -Name "ExternalSwitch" -NetAdapterName "Ethernet1" -AllowManagementOS $true

步骤 5:资源优化与注意事项

  1. 1、存储优化
    • 使用 差异磁盘 后,所有虚拟机共享基础模板,实际占用空间为 基础模板大小 + 500台差异磁盘增量
    • 若需独立磁盘,将 New-VHD 命令替换为 Copy-Item 复制模板文件。
  2. 2、并行加速
    • 在 for 循环中使用 Start-Job 或 ForEach-Object -Parallel(PowerShell 7+)实现并行创建。
  3. 3、资源监控
    • 监控磁盘 I/O 和内存使用,避免同时创建过多虚拟机导致系统崩溃。
  4. 4、分批次启动
    • 首次启动时建议分批次操作(如每次启动 50 台),避免资源争用。

最终文件结构

C:├─ HyperV/│  ├─ Templates/│  │  └─ Win10_Base.vhdx          # Windows 10 模板文件│  └─ VMs/│     ├─ Win10VM001/              # 虚拟机目录│     │  ├─ Virtual Hard Disks/│     │  │  └─ Win10VM001.vhdx    # 差异磁盘│     ├─ Win10VM002/│     └─ ...└─ Create-500VMs.ps1              # 自动化脚本
常见问题解决
1、磁盘空间不足:
确保存储路径有至少 1024GB × 1.2(冗余) 的可用空间。
2、虚拟交换机不存在:
提前运行 New-VMSwitch 创建交换机,或在脚本中添加交换机检查逻辑。
3、模板路径错误:
确认 $baseVHDPath 指向正确的 .vhdx 文件。
通过此方案,您可以在 Windows Server 2022 上高效、自动化地部署 500 台符合要求的 Hyper-V 虚拟机。

原文始发于微信公众号(灰帽安全):Windows Server 2022 批量创建 500 台 Hyper-V 虚拟机完整解决方案,批量部署脚本

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月7日15:51:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Windows Server 2022 批量创建 500 台 Hyper-V 虚拟机完整解决方案,批量部署脚本http://cn-sec.com/archives/3707433.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息