I’m trying to re-create our domain environment on a test server by using DSC to create the environment. However, once I’ve created the environment exactly like our live server, I need to add the users into AD.
I create a csv with all of the users by using
Get-ADuser | Export-CSV -Path C:\ADUsers.csv
When I get this same csv file onto the server to then import them, I run this command:
import-csv -path C:\ADUsers.csv | new-aduser
This creates all of the users, but for some reason, it doesn’t create them within their OU’s. Each user is created and sent to the default “Users” OU created when Active Directory services are imported to the server.
How can I make it so that all of the users are created and placed within their correct OU’s? We have around 300 users, and I don’t really have a way that I can individually type in all of their names per OU.
assuming you export the distinguished name of the user you’ll be able to split the OU out of the distinguished name and use it with the -Path parameter to create your user in the correct OU.
You’ll need to ensure that the OUs are all created before you start creating users
So, in other words, the only way to create them within the proper OU is by picking apart the distinguished name of each user, pulling the OU trees out of that, and then adding that as the -Path parameter?
Would there be a way to automate that that you could think of? Going through 300 users one by one is what I’m trying to avoid by using Powershell.
You could probably just use comparison operators or pattern matching on each objects DN value in your .csv file, to create a variable called $path, and plug that into your New-User parameter. Put your .csv through a ForEach-Object loop and create your users by stepping through the csv one at a time. As long as the target OU’s exist on your new server, you will be fine.