BulkCreateM365Users.ps1
<#PSScriptInfo .VERSION 1.1 .GUID 07c3305d-8ffb-43cb-8830-9a5c40582a1b .AUTHOR Paul van Boerdonk .COMPANYNAME .COPYRIGHT .TAGS .LICENSEURI .PROJECTURI .ICONURI .EXTERNALMODULEDEPENDENCIES .REQUIREDSCRIPTS .EXTERNALSCRIPTDEPENDENCIES .RELEASENOTES .PRIVATEDATA #> <# .SYNOPSIS This script bulk creates a specified number of dummy users in your Microsoft 365 tenant. .DESCRIPTION This script uses the Microsoft.Graph.Users module to create a specified number of dummy users in your Microsoft 365 tenant. The script generates random first and last names for each user and sets a per-user randomly generated password. .PARAMETER NumberOfUsers The number of users to create. .EXAMPLE BulkCreateM365Users.ps1 -NumberOfUsers 10 This command creates 10 dummy users in your Microsoft 365 tenant. .NOTES File Name : BulkCreateM365Users.ps1 Author : Paul van Boerdonk Prerequisite : PowerShell 7.1 or later #> # Set the number of users to create param ( [Parameter(Mandatory = $true)] [int]$NumberOfUsers ) Write-Host " //////////////////////////////////////////////////////// // // // ____ _ _ ____ _ // // | __ ) _ _| | | __/ ___|_ __ ___ __ _| |_ ___ // // | _ \| | | | | |/ / | | '__/ _ \/ _` | __/ _ \ // // | |_) | |_| | | <| |___| | | __/ (_| | || __/ // // |____/ \__,_|_|_|\_\\____|_| \___|\__,_|\__\___| // // __ __ _____ __ ____ _ _ // // | \/ |___ / / /_| ___|| | | |___ ___ _ __ ___ // // | |\/| | |_ \| '_ \___ \| | | / __|/ _ \ '__/ __| // // | | | |___) | (_) |__) | |_| \__ \ __/ | \__ \ // // |_| |_|____/ \___/____/ \___/|___/\___|_| |___/ // // // // // //////////////////////////////////////////////////////// File Name : BulkCreateM365Users.ps1 Author : Paul van Boerdonk Version : 1.1 Prerequisite : PowerShell 7.1 or later " # Install the Microsoft.Graph.Users module if you haven't already if (-not (Get-Module -Name Microsoft.Graph.Users -ListAvailable)) { Write-Host "Microsoft.Graph.Users module not found. Installing the module..." Install-Module -Name Microsoft.Graph.Users -Scope CurrentUser -Force -AllowClobber } else { Write-Host "Microsoft.Graph.Users module found. Importing the module..." Import-Module Microsoft.Graph.Users } # Check if already logged in to Microsoft Graph and disconnect if needed try { Get-MgUser -ErrorAction Stop | Out-Null Disconnect-MgGraph | Out-Null Write-Host "Already logged in to Microsoft Graph, disconnected from the existing session." } catch { Write-Host "No existing Microsoft Graph connection." } # Authenticate to Microsoft Graph Write-Host "Authenticate by signing in to your Microsoft 365 tenant..." Connect-MgGraph -Scopes "User.ReadWrite.All" -NoWelcome $domain = (Get-MgOrganization).VerifiedDomains[0].name Write-Host "Default domain: $domain" # Function to create a dummy user function New-DummyUser { param ( [string]$UserName, [string]$DisplayName, [string]$Password ) New-MgUser -AccountEnabled ` -DisplayName $DisplayName ` -MailNickname $UserName ` -Mail "$UserName@$domain" ` -UserPrincipalName "$UserName@$domain" ` -PasswordProfile @{ Password = $Password; ForceChangePasswordNextSignIn = $false } ` -ErrorAction Stop } # Function to generate a random password function Get-RandomPassword { $length = 16 $chars = @() $chars += [char[]](65..90) # Uppercase A-Z $chars += [char[]](97..122) # Lowercase a-z $chars += [char[]](48..57) # Numbers 0-9 $specialChars = "!@#$%^&*()-_=+[]{}|;:,.<>?/" $chars += [char[]]$specialChars $password = -join ((1..$length) | ForEach-Object { $chars | Get-Random }) return $password } # Function to generate a random name function Get-RandomName { $firstNames = @( "Aaron", "Abigail", "Adam", "Adrian", "Aiden", "Ainsley", "Alana", "Albert", "Alec", "Alexa", "Alexander", "Alexandra", "Alexis", "Alice", "Alicia", "Allison", "Alyssa", "Amanda", "Amber", "Amelia", "Amy", "Andrea", "Andrew", "Angela", "Angelina", "Anna", "Anthony", "April", "Ariana", "Arianna", "Ashley", "Ashton", "Aubrey", "Audrey", "Austin", "Autumn", "Ava", "Avery", "Bailey", "Barbara", "Beatrice", "Becky", "Benjamin", "Bennett", "Beth", "Bethany", "Bianca", "Blake", "Blanca", "Braden", "Bradley", "Brady", "Brandon", "Brayden", "Brenda", "Briana", "Brianna", "Brian", "Brielle", "Brittany", "Brody", "Brooke", "Brooklyn", "Bryan", "Bryce", "Brynn", "Caden", "Caitlin", "Caleb", "Callie", "Cameron", "Camila", "Carlos", "Caroline", "Carter", "Casey", "Cassandra", "Catherine", "Cecilia", "Celeste", "Charles", "Charlotte", "Chase", "Chelsea", "Chloe", "Christian", "Christina", "Christopher", "Claire", "Clara", "Clarissa", "Clayton", "Cody", "Colby", "Cole", "Colin", "Collin", "Connor", "Cooper", "Courtney", "Cristian", "Crystal", "Curtis", "Cynthia", "Daisy", "Dakota", "Dalton", "Damian", "Daniel", "Daniela", "Danielle", "David", "Dawn", "Dean", "Deanna", "Deborah", "Declan", "Delaney", "Derek", "Desiree", "Destiny", "Devin", "Diana", "Diego", "Dominic", "Donovan", "Dylan", "Easton", "Eden", "Edward", "Edwin", "Eleanor", "Elena", "Eli", "Eliana", "Elias", "Elijah", "Elise", "Elizabeth", "Ella", "Elliot", "Elliott", "Ellis", "Emily", "Emma", "Emmanuel", "Emmett", "Eric", "Erica", "Erik", "Erin", "Esmeralda", "Ethan", "Eva", "Evan", "Evelyn", "Everett", "Faith", "Felicity", "Fernando", "Fiona", "Gabriel", "Gabriella", "Gabrielle", "Gage", "Garrett", "Gavin", "Genesis", "Genevieve", "George", "Georgia", "Gianna", "Giselle", "Grace", "Gracie", "Grayson", "Gregory", "Gretchen", "Hailey", "Haley", "Hannah", "Harper", "Harrison", "Hayden", "Heather", "Heidi", "Henry", "Holly", "Hope", "Hudson", "Hunter", "Ian", "Isaac", "Isabel", "Isabella", "Isabelle", "Isaiah", "Isla", "Ivan", "Ivy", "Jack", "Jackson", "Jacob", "Jacqueline", "Jade", "Jaden", "Jake", "James", "Jameson", "Jamie", "Jared", "Jasmine", "Jason", "Jasper", "Javier", "Jayden", "Jeffrey", "Jenna", "Jennifer", "Jessica", "Jessie", "Jesus", "Jillian", "Joel", "John", "Johnny", "Jonah", "Jonathan", "Jordan", "Jordyn", "Jorge", "Jose", "Joseph", "Joshua", "Josiah", "Joy", "Juan", "Judith", "Julia", "Julian", "Juliana", "Julie", "Justin", "Kaden", "Kai", "Kaiden", "Kaitlyn", "Kaleb", "Kara", "Karen", "Karina", "Karla", "Kate", "Katelyn", "Katherine", "Kathryn", "Katie", "Kayla", "Kaylee", "Keith", "Kelsey", "Kendall", "Kennedy", "Kenneth", "Kenzie", "Kevin", "Kiara", "Kimberly", "Kingston", "Kira", "Kirsten", "Kylie", "Laila", "Landon", "Laura", "Lauren", "Layla", "Leah", "Leo", "Leonardo", "Liam", "Lillian", "Lilly", "Lily", "Lincoln", "Lindsey", "Logan", "London", "Lorenzo", "Louis", "Lucas", "Lucy", "Luis", "Luke", "Lydia", "Mackenzie", "Madeline", "Madelyn", "Madison", "Makayla", "Makenna", "Malachi", "Malcolm", "Mallory", "Mandy", "Manuel", "Mara", "Marcus", "Margaret", "Maria", "Mariah", "Mariana", "Marie", "Marilyn", "Mario", "Marissa", "Mark", "Marshall", "Martha", "Martin", "Mary", "Mason", "Mateo", "Matthew", "Maverick", "Max", "Maxwell", "Maya", "Mckenzie", "Megan", "Melanie", "Melissa", "Melody", "Mercedes", "Micah", "Michael", "Michelle", "Miguel", "Mila", "Miles", "Miley", "Milo", "Miranda", "Molly", "Monica", "Morgan", "Mya", "Myla", "Nadia", "Nancy", "Naomi", "Natalia", "Natalie", "Nathan", "Nathaniel", "Nevaeh", "Nicholas", "Nicole", "Nina", "Noah", "Nolan", "Nora", "Norah", "Oliver", "Olivia", "Omar", "Owen", "Paige", "Paisley", "Parker", "Patrick", "Paul", "Payton", "Penelope", "Peter", "Peyton", "Piper", "Preston", "Quinn", "Rachel", "Raegan", "Rafael", "Ralph", "Ramona", "Randall", "Randy", "Raymond", "Reagan", "Rebecca", "Reece", "Reese", "Regina", "Reid", "Remington", "Renee", "Rhett", "Ricardo", "Richard", "Riley", "Robert", "Roberto", "Rocco", "Roman", "Ronald", "Rory", "Rose", "Rowan", "Ruby", "Russell", "Ruth", "Ryan", "Ryder", "Ryker", "Sabrina", "Sadie", "Samantha", "Samuel", "Sandra", "Sara", "Sarah", "Savannah", "Sawyer", "Scarlett", "Scott", "Sean", "Sebastian", "Selena", "Serena", "Sergio", "Seth", "Shane", "Shannon", "Shawn", "Shelby", "Sienna", "Sierra", "Silas", "Simon", "Skylar", "Sloane", "Sofia", "Sophia", "Sophie", "Spencer", "Stella", "Stephanie", "Stephen", "Steven", "Summer", "Sydney", "Sylvia", "Talia", "Tamara", "Tanner", "Tara", "Tate", "Taylor", "Teagan", "Tessa", "Theodore", "Thomas", "Tiffany", "Timothy", "Tobias", "Travis", "Trenton", "Trevor", "Trinity", "Tristan", "Troy", "Tyler", "Valentina", "Valerie", "Vanessa", "Veronica", "Victor", "Victoria", "Vincent", "Violet", "Vivian", "Wade", "Walker", "Walter", "Warren", "Waylon", "Wayne", "Wesley", "Weston", "Whitney", "William", "Willow", "Wyatt", "Xander", "Xavier", "Yasmin", "Yolanda", "Zachary", "Zane", "Zara", "Zoe" ) $firstName = $firstNames | Get-Random $lastNames = @( "Abbott", "Acevedo", "Acosta", "Adkins", "Aguirre", "Albert", "Alexander", "Alford", "Allison", "Alston", "Alvarado", "Andrade", "Anthony", "Atkins", "Avery", "Avila", "Ayala", "Ballard", "Barrera", "Barrios", "Barton", "Bass", "Bates", "Battle", "Bauer", "Baxter", "Beard", "Beasley", "Beck", "Becker", "Bell", "Bender", "Benjamin", "Benson", "Bentley", "Berg", "Berger", "Bernard", "Berry", "Best", "Bird", "Bishop", "Blackburn", "Blake", "Blanchard", "Blankenship", "Blevins", "Bolton", "Bond", "Bonner", "Booker", "Boone", "Bowers", "Bowman", "Boyd", "Boyer", "Boyle", "Bradford", "Bradley", "Brady", "Branch", "Bray", "Brennan", "Brewer", "Bridges", "Briggs", "Brock", "Brooks", "Brown", "Browning", "Bruce", "Bryan", "Bryant", "Buchanan", "Buck", "Buckley", "Bullock", "Burch", "Burgess", "Burke", "Burnett", "Burns", "Burris", "Burton", "Bush", "Butler", "Byers", "Byrd", "Caldwell", "Calhoun", "Callahan", "Camacho", "Cameron", "Campbell", "Campos", "Cannon", "Cantrell", "Cardenas", "Carey", "Carlson", "Carney", "Carpenter", "Carr", "Carrillo", "Carroll", "Carson", "Carter", "Case", "Casey", "Cash", "Castaneda", "Castillo", "Castro", "Cervantes", "Chambers", "Chan", "Chandler", "Chaney", "Chang", "Chapman", "Charles", "Chase", "Chavez", "Chen", "Cherry", "Christensen", "Christian", "Church", "Clark", "Clarke", "Clay", "Clayton", "Clements", "Clemons", "Cline", "Cobb", "Cochran", "Coffey", "Cohen", "Cole", "Coleman", "Collier", "Collins", "Colon", "Combs", "Conley", "Conner", "Conrad", "Contreras", "Conway", "Cook", "Cooley", "Cooper", "Copeland", "Cortez", "Cote", "Cotton", "Cox", "Craft", "Craig", "Crane", "Crawford", "Crosby", "Cross", "Cruz", "Cummings", "Cunningham", "Curry", "Curtis", "Dale", "Dalton", "Daniel", "Daniels", "Daugherty", "Davenport", "David", "Davidson", "Davis", "Dawson", "Day", "Dean", "Decker", "Dejesus", "Delacruz", "Delaney", "Deleon", "Delgado", "Dennis", "Diaz", "Dickerson", "Dickson", "Dillard", "Dillon", "Dixon", "Dodson", "Dominguez", "Donaldson", "Donovan", "Dorsey", "Dotson", "Douglas", "Downs", "Doyle", "Drake", "Dudley", "Duffy", "Duke", "Duncan", "Dunlap", "Dunn", "Duran", "Durham", "Dyer", "Eaton", "Edwards", "Elliott", "Ellis", "Ellison", "Emerson", "England", "English", "Erickson", "Espinoza", "Estes", "Estrada", "Evans", "Everett", "Ewing", "Farley", "Farmer", "Farrell", "Faulkner", "Ferguson", "Fernandez", "Ferrell", "Fields", "Figueroa", "Finch", "Finley", "Fischer", "Fisher", "Fitzgerald", "Fitzpatrick", "Fleming", "Fletcher", "Flores", "Flowers", "Floyd", "Flynn", "Foley", "Forbes", "Ford", "Foreman", "Foster", "Fowler", "Fox", "Francis", "Franco", "Frank", "Franklin", "Franks", "Frazier", "Frederick", "Freeman", "French", "Frost", "Fry", "Frye", "Fuentes", "Fuller", "Fulton", "Gaines", "Gallagher", "Gallegos", "Galloway", "Gamble", "Garcia", "Gardner", "Garner", "Garrett", "Garrison", "Garza", "Gates", "Gay", "Gentry", "George", "Gibbs", "Gibson", "Gilbert", "Giles", "Gill", "Gillespie", "Gilliam", "Gilmore", "Glass", "Glenn", "Glover", "Goff", "Golden", "Gomez", "Gonzales", "Gonzalez", "Good", "Goodman", "Goodwin", "Gordon", "Gould", "Graham", "Grant", "Graves", "Gray", "Green", "Greene", "Greer", "Gregory", "Griffin", "Griffith", "Grimes", "Gross", "Guerra", "Guerrero", "Guthrie", "Gutierrez", "Guy", "Guzman", "Hahn", "Hale", "Haley", "Hall", "Hamilton", "Hammond", "Hampton", "Hancock", "Haney", "Hansen", "Hanson", "Hardin", "Harding", "Hardy", "Harmon", "Harper", "Harrell", "Harrington", "Harris", "Harrison", "Hart", "Hartman", "Harvey", "Hatfield", "Hawkins", "Hayden", "Hayes", "Haynes", "Hays", "Head", "Heath", "Hebert", "Henderson", "Hendricks", "Hendrix", "Henry", "Hensley", "Henson", "Herman", "Hernandez", "Herrera", "Herring", "Hess", "Hester", "Hewitt", "Hickman", "Hicks", "Higgins", "Hill", "Hines", "Hinton", "Hobbs", "Hodge", "Hodges", "Hoffman", "Hogan", "Holcomb", "Holden", "Holder", "Holland", "Holloway", "Holman", "Holmes", "Holt", "Hood", "Hooper", "Hoover", "Hopkins", "Hopper", "Horn", "Horne", "Horton", "House", "Houston", "Howard", "Howe", "Howell", "Hubbard", "Huber", "Hudson", "Huff", "Huffman", "Hughes", "Hull", "Humphrey", "Hunt", "Hunter", "Hurley", "Hurst", "Hutchinson", "Hyde", "Ingram", "Irwin", "Jackson", "Jacobs", "Jacobson", "James", "Jarvis", "Jefferson", "Jenkins", "Jennings", "Jensen", "Jimenez", "Johns", "Johnson", "Johnston", "Jones", "Jordan", "Joseph", "Joyce", "Joyner", "Juarez", "Justice", "Kane", "Kaufman", "Keith", "Keller", "Kelley", "Kelly", "Kemp", "Kennedy", "Kent", "Kerr", "Key", "Kidd", "Kim", "King", "Kinney", "Kirby", "Kirk", "Kirkland", "Klein", "Kline", "Knapp", "Knight", "Knowles", "Knox", "Koch", "Kramer", "Lamb", "Lambert", "Lancaster", "Landry", "Lane", "Lang", "Langley", "Lara", "Larsen", "Larson", "Lawrence", "Lawson", "Le", "Leach", "Leblanc", "Lee", "Leon", "Leonard", "Lester", "Levine", "Levy", "Lewis", "Lindsay", "Lindsey", "Little", "Livingston", "Lloyd", "Logan", "Long", "Lopez", "Lott", "Love", "Lowe", "Lowery", "Lucas", "Luna", "Lynch", "Lynn", "Lyons", "Macdonald", "Macias", "Mack", "Madden", "Maddox", "Maldonado", "Malone", "Mann", "Manning", "Marks", "Marquez", "Marsh", "Marshall", "Martin", "Martinez", "Mason", "Massey", "Mathews", "Mathis", "Matthews", "Maxwell", "May", "Mayer", "Maynard", "Mayo", "Mays", "Mcbride", "Mccall", "Mccarthy", "Mccarty", "Mcclain", "Mcclure", "Mcconnell", "Mccormick", "Mccoy", "Mccray", "Mccullough", "Mcdaniel", "Mcdonald", "Mcdowell", "Mcfadden", "Mcfarland", "Mcgee", "Mcgowan", "Mcguire", "Mcintosh", "Mcintyre", "Mckay", "Mckee", "Mckenzie", "Mckinney", "Mcknight", "Mclaughlin", "Mclean", "Mcleod", "Mcmahon", "Mcmillan", "Mcneil", "Mcpherson", "Meadows", "Medina", "Mejia", "Melendez", "Melton", "Mendez", "Mendoza", "Mercado", "Mercer", "Merrill", "Merritt", "Meyer", "Meyers", "Michael", "Middleton", "Miles", "Miller", "Mills", "Miranda", "Mitchell", "Molina", "Monroe", "Montgomery", "Montoya", "Moody", "Moon", "Mooney", "Moore", "Morales", "Moran", "Moreno", "Morgan", "Morin", "Morris", "Morrison", "Morrow", "Morse", "Morton", "Moses", "Mosley", "Moss", "Mueller", "Mullen", "Mullins", "Munoz", "Murphy", "Murray", "Myers", "Nash", "Navarro", "Neal", "Nelson", "Newman", "Newton", "Nguyen", "Nichols", "Nicholson", "Nielsen", "Nieves", "Nixon", "Noble", "Noel", "Nolan", "Norman", "Norris", "Norton", "Nunez", "Obrien", "Ochoa", "Oconnor", "Odom", "Odonnell", "Oliver", "Olsen", "Olson", "Oneal", "Oneil", "Oneill", "Orr", "Ortega", "Ortiz", "Osborn", "Osborne", "Owen", "Owens", "Pace", "Pacheco", "Padilla", "Page", "Palmer", "Park", "Parker", "Parks", "Parrish", "Parsons", "Pate", "Patel", "Patrick", "Patterson", "Patton", "Paul", "Payne", "Pearson", "Peck", "Pena", "Pennington", "Perez", "Perkins", "Perry", "Peters", "Petersen", "Peterson", "Petty", "Phelps", "Phillips", "Pickett", "Pierce", "Pittman", "Pitts", "Pollard", "Poole", "Pope", "Porter", "Potter", "Potts", "Powell", "Powers", "Pratt", "Preston", "Price", "Prince", "Pruitt", "Puckett", "Pugh", "Quinn", "Ramirez", "Ramos", "Ramsey", "Randall", "Randolph", "Rasmussen", "Ratliff", "Ray", "Raymond", "Reed", "Reese", "Reeves", "Reid", "Reilly", "Reyes", "Reynolds", "Rhodes", "Rice", "Rich", "Richard", "Richards", "Richardson", "Richmond", "Riddle", "Riggs", "Riley", "Rios", "Rivas", "Rivera", "Rivers", "Roach", "Robbins", "Roberson", "Roberts", "Robertson", "Robinson", "Robles", "Rocha", "Rodgers", "Rodriguez", "Rodriquez", "Rogers", "Rojas", "Rollins", "Roman", "Romero", "Rosa", "Rosales", "Rosario", "Rose", "Ross", "Roth", "Rowe", "Rowland", "Roy", "Ruiz", "Rush", "Russell", "Russo", "Rutledge", "Ryan", "Salas", "Salazar", "Salinas", "Sampson", "Sanchez", "Sanders", "Sandoval", "Sanford", "Santana", "Santiago", "Santos", "Sargent", "Saunders", "Savage", "Sawyer", "Schmidt", "Schneider", "Schroeder", "Schultz", "Schwartz", "Scott", "Sears", "Sellers", "Serrano", "Sexton", "Shaffer", "Shannon", "Sharp", "Sharpe", "Shaw", "Shelton", "Shepard", "Shepherd", "Sheppard", "Sherman", "Shields", "Short", "Silva", "Simmons", "Simon", "Simpson", "Sims", "Singleton", "Skinner", "Slater", "Sloan", "Small", "Smith", "Snider", "Snow", "Snyder", "Solis", "Solomon", "Sosa", "Soto", "Sparks", "Spears", "Spence", "Spencer", "Stafford", "Stanley", "Stanton", "Stark", "Steele", "Stein", "Stephens", "Stephenson", "Stevens", "Stevenson", "Stewart", "Stokes", "Stone", "Stout", "Strickland", "Strong", "Stuart", "Suarez", "Sullivan", "Summers", "Sutton", "Swanson", "Sweeney", "Sweet", "Sykes", "Talley", "Tanner", "Tate", "Taylor", "Terrell", "Terry", "Thomas", "Thompson", "Thornton", "Tillman", "Todd", "Torres", "Townsend", "Tran", "Travis", "Trevino", "Trujillo", "Tucker", "Turner", "Tyler", "Tyson", "Underwood", "Valdez", "Valencia", "Valentine", "Valenzuela", "Vance", "Vang", "Vargas", "Vasquez", "Vaughan", "Vaughn", "Vazquez", "Vega", "Velasquez", "Velazquez", "Velez", "Villarreal", "Vincent", "Vinson", "Wade", "Wagner", "Walker", "Wall", "Wallace", "Waller", "Walls", "Walsh", "Walter", "Walters", "Walton", "Ward", "Ware", "Warner", "Warren", "Washington", "Waters", "Watkins", "Watson", "Watts", "Weaver", "Webb", "Weber", "Webster", "Weeks", "Weiss", "Welch", "Wells", "West", "Wheeler", "Whitaker", "White", "Whitehead", "Whitney", "Wiggins", "Wilcox", "Wilder", "Wiley", "Wilkerson", "Wilkins", "Wilkinson", "William", "Williams", "Williamson", "Willis", "Wilson", "Winters", "Wise", "Witt", "Wolf", "Wolfe", "Wong", "Wood", "Woodard", "Woods", "Woodward", "Wooten", "Workman", "Wright", "Wyatt", "Wynn", "Yang", "Yates", "York", "Young", "Zamora", "Zimmerman", "Zuniga" ) $lastName = $lastNames | Get-Random return $firstName, $lastName } Write-Host "Creating $numberOfUsers dummy users in your Microsoft 365 tenant..." # Loop to create users $createdUsers = @() for ($i = 1; $i -le $numberOfUsers; $i++) { $percentComplete = [math]::Round(($i / $numberOfUsers) * 100) Write-Progress -Activity "Creating Users" -Status "Processing user $i of $numberOfUsers" -PercentComplete $percentComplete $nameParts = Get-RandomName $UserName = "$($nameParts[0]).$($nameParts[1])" $DisplayName = "$($nameParts[0]) $($nameParts[1])" $Password = Get-RandomPassword try { $createUser = New-DummyUser -UserName $UserName -DisplayName $DisplayName -Password $Password Write-Host "✅ $DisplayName created successfully." $createdUsers += [PSCustomObject]@{ UserId = $createUser.Id DisplayName = $createUser.DisplayName UserName = $createUser.UserPrincipalName } } catch { if ($_.Exception.Message -match "Another object with the same value for property userPrincipalName already exists") { Write-host "❌ Error creating user $($DisplayName): UserPrincipalName already exists." } else { Write-Host "❌ Error creating user $($DisplayName): $($_.Exception.Message)" } } } # Disconnect from Microsoft Graph Start-Sleep -Seconds 1 Write-Host "`nDisconnecting from Microsoft Graph..." Disconnect-MgGraph | Out-Null Write-Host "✅ Done, total of $($createdUsers.Count) users created." Write-Host "`nPress any key to exit..." $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") |