使用 Powershell 获取 Azure 虚拟桌面主机池中分配的用户列表

问题描述 投票:0回答:1

我想获取分配给 AVD 会话主机的用户列表。有一些

Powershell
cmdlet,例如
Get-AzWvdWorkspace
Get-AzWvdHostPool
,但我在输出中看不到任何可以提供指定用户的内容。

我可以使用什么东西来提供此输出,而无需以 CSV 格式导出每个主机池并过滤其中分配的用户?

azure powershell azure-resource-manager azure-powershell
1个回答
0
投票

尚不清楚您到底要导出什么内容到 Csv,但这应该能让您了解如何处理将分配分配到主机池的情况。基本上,您首先列出主机池,然后从那里您可以查询其关联的应用程序组(AVD 组),然后对于每个关联的组,您可以查询角色分配,仅包括那些

.Scope
.Id 相同的分配
您的团队本身。

请注意,下面的代码将 排除任何没有关联 AVD 组的主机池,并且还将排除关联 AVD 组没有任何分配的任何主机池

Get-AzWvdHostPool | ForEach-Object {
    foreach ($avdgroup in $_.ApplicationGroupReference | Get-AzWvdApplicationGroup) {
        foreach ($roleassignment in Get-AzRoleAssignment -Scope $avdgroup.Id) {
            if ($roleassignment.Scope -ne $avdgroup.Id) {
                continue
            }

            [pscustomobject]@{
                HostPool              = $_.Name
                AssignedGroup         = $avdgroup.Name
                AssignmentDisplayName = $roleassignment.DisplayName
                AssignmentType        = $roleassignment.ObjectType
                RoleDefinitionName    = $assignments.RoleDefinitionName
            }
        }
    }
} | Export-Csv the\path\toyourCsv.csv
© www.soinside.com 2019 - 2024. All rights reserved.