public/get-AllAzurePermissions.ps1
Function get-AllAzurePermissions{ <# Author = "Jos Lieben (jos@lieben.nu)" CompanyName = "Lieben Consultancy" Copyright = "https://www.lieben.nu/liebensraum/commercial-use/" #> Param( [Switch]$skipReportGeneration ) $activity = "Scanning Azure" Write-Progress -Id 1 -PercentComplete 1 -Activity $activity -Status "Getting subscriptions..." Write-LogMessage -level 4 -message "Getting subscriptions..." $subscriptions = New-GraphQuery -Uri "$($global:octo.azureUrl)/subscriptions?api-version=2020-01-01" -Method GET -resource "$($global:octo.azureUrl)/" Write-LogMessage -level 4 -message "$($subscriptions.Count) subscriptions retrieved :)" Write-Progress -Id 1 -PercentComplete 2 -Activity $activity -Status "Scanning subscriptions..." foreach($subscription in $subscriptions){ New-ScanJob -Title $activity -Target $subscription.subscriptionId -FunctionToRun "get-AzurePermissions" -FunctionArguments @{ "subscriptionId" = $subscription.subscriptionId "isParallel" = $True } } [System.GC]::GetTotalMemory($true) | out-null Write-LogMessage -message "Starting scan..." Start-ScanJobs -Title $activity if(!$skipReportGeneration){ Write-LogMessage -message "Generating report..." -level 4 Write-Report } Write-Progress -Id 1 -Completed -Activity $activity } |