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

如何使用PowerShell获取Azure Virtual Desktop主机池已分配用户列表

获取Azure Virtual Desktop会话主机的已分配用户列表

AVD的用户分配信息并不直接存储在主机池或会话主机对象中,而是绑定到**应用组(Application Group)**上——所有能访问会话主机的用户,都是通过被分配到对应主机池的应用组(桌面应用组/远程应用组)实现的。你可以直接用PowerShell串联查询,无需导出CSV再筛选。

直接查询所有主机池的用户分配

执行以下PowerShell命令,会遍历所有主机池,自动关联对应的应用组,并列出每个应用组的已分配用户:

# 获取所有AVD主机池
$hostPools = Get-AzWvdHostPool

# 遍历主机池,查询关联应用组的用户分配
foreach ($pool in $hostPools) {
    Write-Host "=== 主机池: $($pool.Name) ===" -ForegroundColor Cyan
    # 获取当前主机池关联的所有应用组
    $appGroups = Get-AzWvdApplicationGroup -ResourceGroupName $pool.ResourceGroupName | 
                 Where-Object { $_.HostPoolArmPath -eq $pool.Id }
    
    foreach ($group in $appGroups) {
        Write-Host "应用组: $($group.Name) ($($group.ApplicationGroupType))" -ForegroundColor Yellow
        # 查询应用组的RBAC角色分配(AVD用户分配基于RBAC)
        $userAssignments = Get-AzRoleAssignment -ResourceGroupName $pool.ResourceGroupName `
                                               -ResourceName $group.Name `
                                               -ResourceType 'Microsoft.DesktopVirtualization/applicationGroups'
        
        if ($userAssignments) {
            $userAssignments | Select-Object DisplayName, SignInName, RoleDefinitionName | Format-Table -AutoSize
        } else {
            Write-Host "无已分配用户" -ForegroundColor Gray
        }
        Write-Host "`n"
    }
}

查询指定主机池的用户分配

如果只需要单个主机池的信息,直接指定主机池和资源组名称过滤:

# 替换为你的目标主机池和资源组名称
$targetPoolName = "Your-Host-Pool-Name"
$resourceGroupName = "Your-Resource-Group-Name"

$pool = Get-AzWvdHostPool -Name $targetPoolName -ResourceGroupName $resourceGroupName
Write-Host "=== 主机池: $($pool.Name) ===" -ForegroundColor Cyan

$appGroups = Get-AzWvdApplicationGroup -ResourceGroupName $resourceGroupName | 
             Where-Object { $_.HostPoolArmPath -eq $pool.Id }

foreach ($group in $appGroups) {
    Write-Host "应用组: $($group.Name) ($($group.ApplicationGroupType))" -ForegroundColor Yellow
    $userAssignments = Get-AzRoleAssignment -ResourceGroupName $resourceGroupName `
                                           -ResourceName $group.Name `
                                           -ResourceType 'Microsoft.DesktopVirtualization/applicationGroups'
    
    if ($userAssignments) {
        $userAssignments | Select-Object DisplayName, SignInName, RoleDefinitionName | Format-Table -AutoSize
    } else {
        Write-Host "无已分配用户" -ForegroundColor Gray
    }
    Write-Host "`n"
}

说明

  • AVD的用户访问权限基于RBAC,通常分配的角色是「Desktop Virtualization User」,命令会自动筛选出这类角色的分配记录。
  • 如果需要将结果导出到CSV,只需在查询后添加| Export-Csv -Path "AVD-User-Assignments.csv" -NoTypeInformation即可,无需先导出主机池再筛选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 05:40:01