You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Get-AzureRmVM结果批量将资源组内VM加入域?

批量将指定资源组内的Azure VM加入域的实现方案

没问题,这事儿用PowerShell的循环就能轻松搞定,我给你拆解一下具体步骤:

第一步:获取目标资源组的所有VM并存入数组

先通过Get-AzureRmVM命令把指定资源组里的所有VM信息捞出来,存到一个数组变量里,方便后续循环遍历:

# 替换成你的目标资源组名称
$targetResourceGroup = "abcd"
# 获取该资源组下的所有VM,存入数组
$vmList = Get-AzureRmVM -ResourceGroupName $targetResourceGroup

第二步:循环遍历VM列表,逐个执行域加入操作

用foreach循环遍历刚才拿到的VM数组,每一次循环针对一台VM执行Set-AzureRmVMExtension命令,注意用循环变量动态填充VM名称参数:

# 遍历每台VM,执行域加入操作
foreach ($vm in $vmList) {
    Set-AzureRmVMExtension `
        -ResourceGroupName $targetResourceGroup `
        -VMName $vm.Name `
        -ExtensionType "JSONADDomainExtension" `
        -Name "joindomain" `
        -Publisher "Microsoft.Compute" `
        -TypeHandlerVersion "1.3" `
        -Settings @{
            "Name" = "yourdomain.com"          # 替换成你的域名
            "OUPath" = "OU=Servers,DC=yourdomain,DC=com" # 可选,指定要加入的OU
            "User" = "yourdomain\domain-admin-account" # 替换成域管理员账号
            "Restart" = "true"                 # 加入域后自动重启VM,必须设置
            "Options" = 3                      # 常用选项,代表加入域并创建计算机账户
        } `
        -ProtectedSettings @{
            "Password" = "Your-Secure-Domain-Password" # 替换成域管理员密码
        }
}

几个必须注意的细节:

  • 所有带注释的参数(域名、账号、密码、OU路径)一定要替换成你自己的实际配置
  • TypeHandlerVersion建议使用Azure官方推荐的兼容版本,1.3是经过验证的稳定版本,如需更新可以参考Azure的扩展文档
  • 如果你想先确认要处理的VM列表是否正确,可以先单独执行$vmList.Name命令,查看输出的VM名称是否符合预期
  • 执行命令前确保你的PowerShell已经通过Connect-AzureRmAccount登录到了正确的Azure租户

这样不管资源组里有多少台VM,都会被逐一处理,不会遗漏任何一台。

内容的提问来源于stack exchange,提问作者itye1970

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:28:34