BulkCreateM365Users.ps1
<#PSScriptInfo .VERSION 1.2 .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 The BulkCreateM365Users script is designed to automate the creation of multiple dummy users in a Microsoft 365 tenant. This can be particularly useful for testing, training, or demonstration purposes. The script leverages the Microsoft.Graph.Users module to interact with the Microsoft Graph API. Key features of the script include: - Generation of random first and last names for each user to ensure uniqueness. - Assignment of a randomly generated password for each user. - Customizable parameters to specify the number of users to be created and other user attributes. - Logging capabilities to track the progress and outcome of the script execution. The script requires appropriate permissions to create users in the Microsoft 365 tenant and interact with the Microsoft Graph API. The Microsoft.Graph.Users module will be installed automatically if it is not already present on the system. .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 Version : 1.2 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.2 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." |