查询无IAM角色分配的Azure资源组的PowerShell脚本需求
查找未分配IAM角色的Azure资源组PowerShell脚本
可用目标脚本
# 连接Azure账户,执行前替换为你实际的租户ID、订阅ID Connect-AzureRmAccount -Tenant <你的租户ID> -Subscription <你的订阅ID> # 获取当前订阅下所有资源组列表 $allResourceGroups = Get-AzureRmResourceGroup # 初始化空数组存储无角色分配的资源组 $noRoleAssignRG = @() # 遍历所有资源组检查IAM角色分配情况 foreach ($rg in $allResourceGroups) { $assignments = Get-AzureRmRoleAssignment -ResourceGroupName $rg.ResourceGroupName # 角色分配数量为0则存入结果数组 if ($assignments.Count -eq 0) { $noRoleAssignRG += $rg } } # 控制台输出结果 $noRoleAssignRG | Select-Object ResourceGroupName, Location, ProvisioningState | Format-Table # 如需导出结果到CSV,取消注释下行即可,替换为你本地的保存路径 # $noRoleAssignRG | Select-Object ResourceGroupName, Location, ProvisioningState | Export-Csv -Path "C:\Users\Desktop\无IAM角色分配资源组.csv" -Encoding UTF8 -NoTypeInformation
相关参考操作脚本(中文翻译版)
1. 批量邀请多个用户脚本
前置要求:提前安装AzureADPreview模块
Install-Module AzureADPreview # 连接Azure AD,替换为你的租户ID Connect-AzureAD -TenantId <你的租户ID> # 导入存储待邀请用户信息的CSV文件,替换为你本地的文件路径 $invitations = Import-Csv C:\Users\dummy\Desktop\users.csv $messageInfo = New-Object Microsoft.Open.MSGraph.Model.InvitedUserMessageInfo # 自定义邀请邮件正文 $messageInfo.customizedMessageBody = "你好,你已受邀加入xyz.onmicrosoft.com租户。" foreach ($email in $invitations) { New-AzureADMSInvitation ` -InvitedUserEmailAddress $email.InvitedUserEmailAddress ` -InvitedUserDisplayName $email.Name ` -InviteRedirectUrl https://myapps.microsoft.com ` -InvitedUserMessageInfo $messageInfo ` -SendInvitationMessage $true }
2. 批量创建多个资源组脚本
# 连接Azure账户,替换为你实际的租户ID、订阅ID Connect-AzureRmAccount -Tenant <你的租户ID> -Subscription <你的订阅ID> # 导入存储资源组信息的CSV文件,CSV需包含Name列存储资源组名称 Import-Csv C:\Users\dummy\Desktop\excel02.csv | ForEach-Object { New-AzureRmResourceGroup -Name $_.Name -Location centralIndia }
3. 批量分配IAM角色脚本
# 连接Azure账户,替换为你实际的租户ID、订阅ID Connect-AzureRmAccount -Tenant <你的租户ID> -Subscription <你的订阅ID> # 导入存储分配信息的CSV文件,CSV需包含Users(用户登录名)、RG(资源组名称)列 Import-Csv C:\Users\dummy\Desktop\excel05.csv | ForEach-Object { New-AzureRMRoleAssignment -SignInName $_.Users -RoleDefinitionName "Owner" -ResourceGroupName $_.RG }
4. 批量获取角色分配脚本
# 连接Azure账户,替换为你实际的租户ID、订阅ID Connect-AzureRmAccount -Tenant <你的租户ID> -Subscription <你的订阅ID> # 导入待查询的分配信息CSV,CSV需包含RG(资源组名称)、Users(用户登录名)列,查询结果导出到指定路径 Import-Csv C:\Users\nawabjanm\Desktop\excel05.csv | ForEach-Object { Get-AzureRmRoleAssignment -ResourceGroupName $_.RG -SignInName $_.Users } | FL > D:\r20.csv
注意事项
- 以上脚本基于AzureRM模块编写,如果你使用新版Az模块,将命令前缀
AzureRm替换为Az即可正常使用 - 执行脚本前请确保你持有对应租户、订阅的管理员权限,避免权限不足导致执行失败
内容的提问来源于stack exchange,提问作者PreetiManhas
相关产品推荐
相关产品推荐

