我想获取分配给 AVD 会话主机的用户列表。有一些
Powershell
cmdlet,例如 Get-AzWvdWorkspace
和 Get-AzWvdHostPool
,但我在输出中看不到任何可以提供指定用户的内容。
我可以使用什么东西来提供此输出,而无需以 CSV 格式导出每个主机池并过滤其中分配的用户?
尚不清楚您到底要导出什么内容到 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