Skip to content

Instantly share code, notes, and snippets.

@mirontoli
Last active June 3, 2020 15:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mirontoli/755dc6691234de574e1fdd26670e71d5 to your computer and use it in GitHub Desktop.
Save mirontoli/755dc6691234de574e1fdd26670e71d5 to your computer and use it in GitHub Desktop.
# This script will try to create 251 groups
# The last one should fail
# configuration:
# 1. create an account nonadmin@takana16.onmicrosoft.com
# 2. go to https://developer.microsoft.com/en-us/graph/graph-explorer, make a call and grab the access token
$token = "eyJ0eXAiOiJKV1QiLCJub25jZSI6Iko1WXU2MWRtR3FsR0JaaVJ0YTJsM0duUFdBLW5FY19yWk90aFNFNlg3MUEiLCJhbGciOiJSUzI1NiIsIng1dCI6ImFQY3R3X29kdlJPb0VOZzNWb09sSWgydGlFcyIsImtpZCI6ImFQY3R3X29kdlJPb0VOZzNWb09sSWgydGlFcyJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8wMzRmOGFhOC01NTBiLTRjZmEtODZhNi03NWFkNTdmMTNkNDkvIiwiaWF0IjoxNTcxOTk3NzQ5LCJuYmYiOjE1NzE5OTc3NDksImV4cCI6MTU3MjAwMTY0OSwiYWNjdCI6MCwiYWNyIjoiMSIsImFpbyI6IkFTUUEyLzhOQUFBQWFmNDJjVjFMTUdZRzlmMFh4TDNCK0pLbTdrR2NNQ3FLcHI3TUtFVlNwdUU9IiwiYW1yIjpbInB3ZCJdLCJhcHBfZGlzcGxheW5hbWUiOiJHcmFwaCBleHBsb3JlciIsImFwcGlkIjoiZGU4YmM4YjUtZDlmOS00OGIxLWE4YWQtYjc0OGRhNzI1MDY0IiwiYXBwaWRhY3IiOiIwIiwiZmFtaWx5X25hbWUiOiJNaXJvbm92IiwiZ2l2ZW5fbmFtZSI6IkFuYXRvbHkiLCJpcGFkZHIiOiIyMTIuNzMuMTY0LjExIiwibmFtZSI6IkFuYXRvbHkgTWlyb25vdiIsIm9pZCI6IjI5OGU2MjNmLTg1M2MtNDcxYS1hODhkLWJkZjA3OTcxNzg5NSIsInBsYXRmIjoiMyIsInB1aWQiOiIxMDAzMjAwMDVFNEU5NDcyIiwic2NwIjoiQWNjZXNzUmV2aWV3LlJlYWQuQWxsIEFjY2Vzc1Jldmlldy5SZWFkV3JpdGUuQWxsIEFncmVlbWVudC5SZWFkLkFsbCBBZ3JlZW1lbnQuUmVhZFdyaXRlLkFsbCBBZ3JlZW1lbnRBY2NlcHRhbmNlLlJlYWQgQWdyZWVtZW50QWNjZXB0YW5jZS5SZWFkLkFsbCBBbmFseXRpY3MuUmVhZCBBcHBDYXRhbG9nLlJlYWRXcml0ZS5BbGwgQXVkaXRMb2cuUmVhZC5BbGwgQm9va2luZ3MuTWFuYWdlLkFsbCBCb29raW5ncy5SZWFkLkFsbCBCb29raW5ncy5SZWFkV3JpdGUuQWxsIEJvb2tpbmdzQXBwb2ludG1lbnQuUmVhZFdyaXRlLkFsbCBDYWxlbmRhcnMuUmVhZCBDYWxlbmRhcnMuUmVhZC5TaGFyZWQgQ2FsZW5kYXJzLlJlYWRXcml0ZS5TaGFyZWQgQ2hhdC5SZWFkIENoYXQuUmVhZFdyaXRlIENvbnRhY3RzLlJlYWQgQ29udGFjdHMuUmVhZC5TaGFyZWQgQ29udGFjdHMuUmVhZFdyaXRlLlNoYXJlZCBEZXZpY2UuQ29tbWFuZCBEZXZpY2UuUmVhZCBEZXZpY2VNYW5hZ2VtZW50QXBwcy5SZWFkLkFsbCBEZXZpY2VNYW5hZ2VtZW50QXBwcy5SZWFkV3JpdGUuQWxsIERldmljZU1hbmFnZW1lbnRDb25maWd1cmF0aW9uLlJlYWQuQWxsIERldmljZU1hbmFnZW1lbnRDb25maWd1cmF0aW9uLlJlYWRXcml0ZS5BbGwgRGV2aWNlTWFuYWdlbWVudE1hbmFnZWREZXZpY2VzLlByaXZpbGVnZWRPcGVyYXRpb25zLkFsbCBEZXZpY2VNYW5hZ2VtZW50TWFuYWdlZERldmljZXMuUmVhZC5BbGwgRGV2aWNlTWFuYWdlbWVudE1hbmFnZWREZXZpY2VzLlJlYWRXcml0ZS5BbGwgRGV2aWNlTWFuYWdlbWVudFJCQUMuUmVhZC5BbGwgRGV2aWNlTWFuYWdlbWVudFJCQUMuUmVhZFdyaXRlLkFsbCBEZXZpY2VNYW5hZ2VtZW50U2VydmljZUNvbmZpZy5SZWFkLkFsbCBEZXZpY2VNYW5hZ2VtZW50U2VydmljZUNvbmZpZy5SZWFkV3JpdGUuQWxsIERpcmVjdG9yeS5BY2Nlc3NBc1VzZXIuQWxsIERpcmVjdG9yeS5SZWFkLkFsbCBEaXJlY3RvcnkuUmVhZFdyaXRlLkFsbCBFZHVBZG1pbmlzdHJhdGlvbi5SZWFkIEVkdUFkbWluaXN0cmF0aW9uLlJlYWRXcml0ZSBFZHVBc3NpZ25tZW50cy5SZWFkIEVkdUFzc2lnbm1lbnRzLlJlYWRCYXNpYyBFZHVBc3NpZ25tZW50cy5SZWFkV3JpdGUgRWR1QXNzaWdubWVudHMuUmVhZFdyaXRlQmFzaWMgRWR1Um9zdGVyLlJlYWRCYXNpYyBGaWxlcy5SZWFkIEZpbGVzLlJlYWQuQWxsIEZpbGVzLlJlYWQuU2VsZWN0ZWQgRmlsZXMuUmVhZFdyaXRlIEZpbGVzLlJlYWRXcml0ZS5BcHBGb2xkZXIgRmlsZXMuUmVhZFdyaXRlLlNlbGVjdGVkIEZpbmFuY2lhbHMuUmVhZFdyaXRlLkFsbCBHcm91cC5SZWFkLkFsbCBHcm91cC5SZWFkV3JpdGUuQWxsIElkZW50aXR5UHJvdmlkZXIuUmVhZC5BbGwgSWRlbnRpdHlQcm92aWRlci5SZWFkV3JpdGUuQWxsIElkZW50aXR5Umlza0V2ZW50LlJlYWQuQWxsIElkZW50aXR5Umlza0V2ZW50LlJlYWRXcml0ZS5BbGwgSWRlbnRpdHlSaXNreVVzZXIuUmVhZC5BbGwgSWRlbnRpdHlSaXNreVVzZXIuUmVhZFdyaXRlLkFsbCBNYWlsLlJlYWQgTWFpbC5SZWFkLlNoYXJlZCBNYWlsLlJlYWRXcml0ZS5TaGFyZWQgTWFpbC5TZW5kIE1haWwuU2VuZC5TaGFyZWQgTWFpbGJveFNldHRpbmdzLlJlYWRXcml0ZSBOb3Rlcy5DcmVhdGUgTm90ZXMuUmVhZCBOb3Rlcy5SZWFkLkFsbCBOb3Rlcy5SZWFkV3JpdGUgTm90aWZpY2F0aW9ucy5SZWFkV3JpdGUuQ3JlYXRlZEJ5QXBwIFBlb3BsZS5SZWFkLkFsbCBQb2xpY3kuUmVhZC5BbGwgUG9saWN5LlJlYWRXcml0ZS5Db25kaXRpb25hbEFjY2VzcyBQb2xpY3kuUmVhZFdyaXRlLlRydXN0RnJhbWV3b3JrIFByaXZpbGVnZWRBY2Nlc3MuUmVhZFdyaXRlLkF6dXJlQUQgUHJpdmlsZWdlZEFjY2Vzcy5SZWFkV3JpdGUuQXp1cmVSZXNvdXJjZXMgUHJvZ3JhbUNvbnRyb2wuUmVhZC5BbGwgUHJvZ3JhbUNvbnRyb2wuUmVhZFdyaXRlLkFsbCBSZXBvcnRzLlJlYWQuQWxsIFNlY3VyaXR5RXZlbnRzLlJlYWQuQWxsIFNlY3VyaXR5RXZlbnRzLlJlYWRXcml0ZS5BbGwgU2l0ZXMuRnVsbENvbnRyb2wuQWxsIFNpdGVzLk1hbmFnZS5BbGwgU2l0ZXMuUmVhZC5BbGwgVGFza3MuUmVhZCBUYXNrcy5SZWFkLlNoYXJlZCBUYXNrcy5SZWFkV3JpdGUuU2hhcmVkIFRydXN0RnJhbWV3b3JrS2V5U2V0LlJlYWQuQWxsIFRydXN0RnJhbWV3b3JrS2V5U2V0LlJlYWRXcml0ZS5BbGwgVXNlci5SZWFkIFVzZXIuUmVhZC5BbGwgVXNlci5SZWFkV3JpdGUuQWxsIFVzZXJBY3Rpdml0eS5SZWFkV3JpdGUuQ3JlYXRlZEJ5QXBwIHByb2ZpbGUgb3BlbmlkIGVtYWlsIFVzZXIuUmVhZFdyaXRlIFVzZXIuUmVhZEJhc2ljLkFsbCBTaXRlcy5SZWFkV3JpdGUuQWxsIENvbnRhY3RzLlJlYWRXcml0ZSBQZW9wbGUuUmVhZCBOb3Rlcy5SZWFkV3JpdGUuQWxsIFRhc2tzLlJlYWRXcml0ZSBNYWlsLlJlYWRXcml0ZSBGaWxlcy5SZWFkV3JpdGUuQWxsIENhbGVuZGFycy5SZWFkV3JpdGUiLCJzaWduaW5fc3RhdGUiOlsia21zaSJdLCJzdWIiOiJaeVU3ajFXZC1qbVQycWVoT0xkcmZRLWpDOEJNWExpcDNKbHRjWjR4S2ZrIiwidGlkIjoiMDM0ZjhhYTgtNTUwYi00Y2ZhLTg2YTYtNzVhZDU3ZjEzZDQ5IiwidW5pcXVlX25hbWUiOiJhZG1pbkB0YWthbmExNi5vbm1pY3Jvc29mdC5jb20iLCJ1cG4iOiJhZG1pbkB0YWthbmExNi5vbm1pY3Jvc29mdC5jb20iLCJ1dGkiOiJwVjdxcFpNaVlrYXphTFdOZzU4N0FBIiwidmVyIjoiMS4wIiwid2lkcyI6WyI2MmU5MDM5NC02OWY1LTQyMzctOTE5MC0wMTIxNzcxNDVlMTAiXSwieG1zX3N0Ijp7InN1YiI6Ilp3N1NraGoxcG9wa0EySm1oV0Jta2hEdTlrTC1VUWdSY3QtM2FWYkM3djAifSwieG1zX3RjZHQiOjE1NjY1NzQ0OTR9.A7cmPDgKnGF2XsG5KqiRpTprtaEoMHzy7JdBgR0ZbNC6VjWEjGNoPfhLADaugOOXhzfT6EkD8t3KPcccFAxkAOZb7xZTnZXDnnDfh8GDMEOdiOZ2Ka-PrXCq-volPSJ_SWILi4D31rxE0oNJL_XbjMFZixcvnh8lWtMAyw6oxuQSkY8yahzVXfEH82HK8pi217OL-PPAjhDR7WH5Gc5sz2_-XlE7QbVktvmLS98nDtkXoMXbHox4TP6abta10onwlEXciPVJv_Gr1lyF490XJEyVZ7n_fOsW0rery5NRDsG9UtEFwvmLcOCi5OEYPkKMOq8eRRC0f_V-yW76JksUXQ"
$authorization = "Bearer " + $token;
$header = @{
"Accept" = "application/json"
"Authorization" = $authorization
"Content-Type" = "application/json"
}
function CallGraph($name) {
$body = @{
"displayName" = $name
"mailNickname" = $name
"mailEnabled" = $true
"securityEnabled" = $false
"groupTypes" = [string[]]"Unified"
"visibility" = "Private"
"resourceBehaviorOptions" = [string[]]"WelcomeEmailDisabled"
} | ConvertTo-Json
Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/groups/" -Method 'Post' -Body $body -Headers $header
}
#$prefix = "try250-002-"
$prefix = "wel-"
$start = 5
$count = 1
$end = $start + $count
$tries = $start..$end
$results = $tries | ForEach-Object {
$name = "$prefix{0:d3}" -f $_
$percent = 100 * ($_ - $start) / $count
Write-Progress -Activity "Creating groups" -Status "$_ of $count Complete:" -PercentComplete $percent
CallGraph($name)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment