MSLab 入门指南:用 3 条 PowerShell 命令搭出 Azure Local 测试集群
MSLab 入门指南:用 3 条 PowerShell 命令搭出 Azure Local 测试集群
【免费下载链接】MSLabAzure Local (formerly Azure Stack HCI), Windows 10 and Windows Server rapid lab deployment scripts项目地址: https://gitcode.com/gh_mirrors/ms/MSLab
MSLab 是一套实验室快速部署脚本,能在装好 Hyper-V 的主机上搭出 Azure Local(原 Azure Stack HCI)、Windows Server 和 Windows 10 的完整虚拟环境。读完后你会拥有一个带域控制器、S2D 集群节点和管理机的实验环境,并且随时可以推倒重来。
部署完成后的环境长什么样
MSLab 跑完默认流程,Hyper-V 管理器里会出现一组虚拟机:
- MSLab-DC:域控制器,DNS、DHCP、DSC Pull 服务已配好
- MSLab-ALNode1、MSLab-ALNode2:Azure Local 节点,挂着模拟的本地磁盘,可以组成 S2D 集群
- MSLab-Management:带图形界面的管理机,日常登录操作就用它
所有虚拟机和虚拟交换机都带 MSLab- 前缀,在管理器里一眼能认出来。磁盘占用也很省——全部虚拟磁盘都是差分盘,主机有 8GB 内存、40GB 空闲空间就能跑,不挑硬件。
首次运行前的准备:克隆仓库并放开策略
把仓库克隆到本地任意目录:
git clone https://gitcode.com/gh_mirrors/ms/MSLab克隆后部署脚本都在Scripts/目录,配置文件是Scripts/LabConfig.ps1。运行前先执行两条命令,否则右键 Run with PowerShell 会报"未经授权"的脚本错误——这是新手第一个卡点:
Get-ChildItem -Path C:\MSLab | Unblock-File Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser第一条解开文件"来自网络"的锁定标记,第二条放开执行策略。顺手确认一下硬件:Windows 10/11 专业版或 Windows Server、已启用 Hyper-V、至少 40GB 空闲空间。脚本自身也会检查系统版本和 Hyper-V 是否就位,缺了会直接提示。
水合阶段为什么慢,怎么避免跑第二遍
MSLab 把工作分成两阶段:水合慢,但只需要跑一次;部署只要几分钟,可以反复跑。
.\Scripts\1_Prereq.ps1它下载脚本依赖的 DSC 模块和工具文件,生成ParentDisks、ToolsDisk目录。首次运行需要联网,之后把整个文件夹拷到离线机器上照样能用,这也是把实验环境交给学员的方式。
接着创建父磁盘:
.\Scripts\2_CreateParentDisks.ps1这是全程最耗时的一步,1~2 小时。脚本会弹窗让你选 Windows Server 安装 ISO,然后制作父 VHD,再构建域控制器并"脱水"成文件。窗口打印 Script finished 并询问是否清理无用文件时,选 Y 即可。
ParentDisks目录里已有你要的 VHD 时,脚本会跳过制作直接复用,这一步能压到 15 分钟左右。要部署 Azure Local 的话,在ParentDisks目录里再跑一次CreateParentDisk.ps1制作 Azure Local 父磁盘,按提示指向 Azure Local 的 ISO。
LabConfig.ps1 里怎么改虚拟机清单
LabConfig.ps1决定部署出什么。最小可用配置(Azure Local 双节点加一台管理机):
$LabConfig=@{ DomainAdminName='LabAdmin'; AdminPassword='LS1setup!'; DCEdition='4'; Internet=$true; AdditionalNetworksConfig=@(); VMs=@() } # 两台 Azure Local 节点,S2D 配置 1..2 | ForEach-Object { $LabConfig.VMs += @{ VMName="ALNode$_"; Configuration='S2D'; ParentVHD='AzSHCI24H2_G2.vhdx'; HDDNumber=4; HDDSize=1TB; MemoryStartupBytes=24GB; VMProcessorCount='MAX'; vTPM=$true; Unattend='NoDjoin'; NestedVirt=$true } } # 一台图形界面管理机 $LabConfig.VMs += @{ VMName='Management'; ParentVHD='Win2025_G2.vhdx'; MGMTNICs=1; AddToolsVHD=$true }关键字段就四个:
Configuration:'S2D'会给 VM 挂模拟本地盘做 Storage Spaces Direct;'Simple'则是普通虚拟机ParentVHD:ParentDisks 目录里的父磁盘名;MemoryStartupBytes、VMProcessorCount分别是启动内存和 CPU 数AdminPassword:在水合阶段写进了父磁盘,之后不要改Internet=$true:给域控制器建外部交换机并配 NAT,实验室内虚拟机可以上网
部署之后:红色报错可以忽略
.\Scripts\3_Deploy.ps1全程约 5 分钟,先导入域控制器,再逐台创建节点和管理机。过程中可能刷出 "InitializeDefaultDrives operation on the 'ActiveDirectory' provider failed" 之类的红字,那是 DC 启动时的正常探测,不影响结果。
但有一个例外:如果红色报错循环刷屏、脚本迟迟不结束,多半是你在做父磁盘之后改过AdminPassword——脚本对密码不一致没有报错,只能保证从创建父磁盘起密码始终一致。
实验做完运行.\Scripts\Cleanup.ps1,确认后所有 VM 被删除、域控制器还原,几分钟后再跑 3_Deploy 又是一套新环境,重建与拆除全靠这对脚本。下一步可以打开HandsOnLabs目录,每个子目录都是一个完整案例,比如02-DeployingAzureLocal演示了如何在节点上部署 Azure Local 角色。
【免费下载链接】MSLabAzure Local (formerly Azure Stack HCI), Windows 10 and Windows Server rapid lab deployment scripts项目地址: https://gitcode.com/gh_mirrors/ms/MSLab
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
