我有数十个订阅,并且很难一次从所有订阅的所有资源中输出所有角色分配。我目前正在使用以下内容,但是每个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
}
答案 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