我正在準備報告,其中包含來自 azure 的所有用戶訪問級別租戶明智。
是否有任何命令或腳本可以從 Azure 租戶獲取所有用戶的訪問級別?
uj5u.com熱心網友回復:
這是一個小技巧:Azure 的 PS 庫與 AD 的 PS 庫不同。你必須交叉資訊。
您必須使用上面的命令從 AD 中獲取所有用戶并另存為變數
$allUsers = Get-ADUsers -Filter *
現在,您可以導航到租戶中的所有訂閱、所有資源組和資源,并為每個人獲取 IAM(帶有用戶的 objectId)并與變數 $allUsers 交叉以識別每個人。
樣本不是最好的,但也許可以幫助您:
Connect-AzAccount
$listIAM = New-Object System.Collections.ArrayList
$listSubscriptions = Get-AzSubscription
foreach($subscription in $listSubscriptions){
Set-AzContext -SubscriptionId $subscription.SubscriptionId
# Now you have all roleAssignements for this subscription
$subscriptionIAM = Get-AzRoleAssignment -Scope /subscriptions/$subscription.SubscriptionId
$listIAM.Add($subscriptionIAM) | Out-Null
# Navigate into resource groups
$listResourceGroups = Get-AzResourceGroup
foreach($resourceGroup in $listResourceGroups){
$rgIAM = Get-AzRoleAssignment -ResourceGroupName $resourceGroup.ResourceGroupName
$listIAM.Add($rgIAM) | Out-Null
# Navigate into resources
$listResources = Get-AzResource -ResourceGroupName $resourceGroup
foreach($resource in $listResources){
$rIAM = Get-AzRoleAssignment -Scope $resouce.ResourceId
$listIAM.Add($rIAM) | Out-Null
}
}
}
uj5u.com熱心網友回復:
您可以在PowerShell或Graph API 中執行此操作。這兩種方法都處于預覽階段(圖形 API 呼叫在 beta 分支下)。
#Get the user
$userId = (Get-AzureADUser -Filter "userPrincipalName eq '[email protected]'").ObjectId
#Get direct role assignments to the user
$directRoles = (Get-AzureADMSRoleAssignment -Filter "principalId eq '$userId'").RoleDefinitionId
先決條件
- 使用 PowerShell 時的 AzureADPreview 模塊
- 使用 PowerShell 時的 Microsoft.Graph 模塊
- 將 Graph Explorer 用于 Microsoft Graph API 時征得管理員同意
https://docs.microsoft.com/en-us/azure/active-directory/roles/list-role-assignments-users
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/379961.html
上一篇:如何在Powershell5.1中為OhMyPosh安裝主題?
下一篇:將csv匯入為具有2個鍵的哈希表
