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

通过PowerShell脚本启动Azure虚拟桌面会话主机的问题排查

解决Azure虚拟桌面会话主机的Start-AzVM调用问题

问题核心

  1. 最初错误使用会话主机的Status(Unavailable)判断是否需要启动,忽略了运行中主机也可能显示该状态,正确判断条件应为VM的电源状态为Deallocated。
  2. 调用Start-AzVM时触发资源找不到错误,是因为误用了会话主机的Name属性(格式为host-pool/host-name),正确的VM名称需要从会话主机的ResourceId中提取。

正确实现步骤

1. 提取正确的VM标识

AVD会话主机的ResourceId属性包含对应VM的完整ARM资源ID,通过Split-Path -Leaf可直接获取准确的VM名称:

$vmName = Split-Path -Path $sessionHost.ResourceId -Leaf

2. 提取VM电源状态

调用Get-AzVM -Status后,返回对象的Statuses数组中,索引为1的元素对应电源状态。可通过Code字段(格式固定)判断,避免语言本地化影响:

$vmStatus = Get-AzVM -Name $vmName -ResourceGroupName $resourceGroup.ResourceGroupName -Status
$powerState = $vmStatus.Statuses[1].Code.Split('/')[1] # 提取deallocated/running

3. 完整可运行脚本

# 检查Az模块是否安装
try {
    Get-InstalledModule -Name Az -ErrorAction Stop
}
catch {
    Write-Host "脚本需要Az模块,请安装后重新运行。"
    exit
}

# 指定目标资源组
$resourceGroupName = "ESOC-AVD-GREEN"
$resourceGroup = Get-AzResourceGroup -Name $resourceGroupName

# 获取主机池和会话主机列表
$hostPool = Get-AzWvdHostPool -ResourceGroupName $resourceGroup.ResourceGroupName
$sessionHosts = Get-AzWvdSessionHost -HostPoolName $hostPool.Name -ResourceGroupName $resourceGroup.ResourceGroupName

# 遍历会话主机,启动处于Deallocated状态的VM
foreach ($sessionHost in $sessionHosts) {
    # 从ResourceId提取VM名称
    $vmName = Split-Path -Path $sessionHost.ResourceId -Leaf
    
    # 获取VM电源状态
    $vmStatus = Get-AzVM -Name $vmName -ResourceGroupName $resourceGroup.ResourceGroupName -Status
    $powerState = $vmStatus.Statuses[1].Code.Split('/')[1]
    
    # 判断并启动VM
    if ($powerState -eq "deallocated") {
        Write-Host "正在启动VM: $vmName"
        Start-AzVM -Name $vmName -ResourceGroupName $resourceGroup.ResourceGroupName
    }
}

关键说明

  • 禁止用会话主机的Status字段判断电源状态:Unavailable仅表示AVD服务无法连接到主机,可能是VM关机或其他故障,不能直接作为启动依据。
  • 依赖ARM资源ID提取VM名称:彻底避免会话主机名称格式导致的资源定位错误。
  • 优先使用Code字段判断电源状态:格式固定为PowerState/状态值,比DisplayStatus更稳定,不受语言设置影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 19:23:28