将Azure AD中所有订阅的RBAC导出到一个csv

时间:2020-05-15 07:59:47

标签: powershell azure-active-directory azure-ad-powershell-v2

我有数十个订阅,并且很难一次从所有订阅的所有资源中输出所有角色分配。我目前正在使用以下内容,但是每个csv文件的每个订阅的输出都会循环播放。如何最好将输出输出到一张纸中?

Get-AzSubscription | foreach-object {

    Write-Verbose -Message "Changing to Subscription $($_.Name)" -Verbose

    Set-AzContext -TenantId $_.TenantId -SubscriptionId $_.Id -Force
    $Name     = $_.Name
    $TenantId = $_.TenantId
    $SubId    = $_.SubscriptionId  

    Get-AzRoleAssignment -IncludeClassicAdministrators | Select-Object RoleDefinitionName,DisplayName,SignInName,ObjectType,Scope,
    @{name="TenantId";expression = {$TenantId}},@{name="SubscriptionName";expression = {$Name}},@{name="SubscriptionId";expression = {$SubId}} -OutVariable ra

    # Also export the individual subscriptions to excel documents on your Desktop.
    # One file per subscription
    $ra | Export-Csv -Path C:\scripts\Export-AzRoleAssignment\$Name.csv -NoTypeInformation

}

1 个答案:

答案 0 :(得分:0)

您可以将-Append参数用于Export-Csv命令。

所以,您的最后一行看起来像这样:

$ra | Export-Csv -Path C:\scripts\Export-AzRoleAssignment\csv_with_everything.csv -NoTypeInformation -Append

或者您可以在运行后将所有csv文件合并为大文件,例如https://stackoverflow.com/a/43972739/1713589