Hey everyone! I'm a sysadmin working for a school district, and I'm fairly new to PowerShell. I've developed a script that successfully creates student user accounts, but I've hit a snag when it comes to placing these accounts in the correct Organizational Units (OUs). Our Active Directory has a specific structure where each grade level has its own folder inside the Student OUs for each school. I'm considering pulling the school name and grade level from a CSV file and using a lengthy switch statement to handle the moves, but I'm hoping you might have some better ideas. Any tips or advice would really be appreciated!
1 Answer
A more efficient approach would be to dynamically construct the OU path based on the grade and school details you pull from the CSV. For example, if your OU structure looks like this: `OU=Grade5,OU=Students,OU=School,DC=yourdomain,DC=com`, you can use something like this in your script:
```powershell
Import-Csv .students.csv | ForEach-Object {
$FirstName = $_.FirstName
$LastName = $_.LastName
$Username = $_.Username
$Grade = $_.Grade
$School = $_.School
$OU = "OU=$Grade,OU=Students,OU=$School,DC=yourdomain,DC=com"
# Your new-aduser command here, using $OU as the path
}
```
This way, you create the account in the correct OU right from the start!
This sounds like a good plan! I think I just need to tweak my CSV format a bit since my grades are represented as numbers, while the OUs have text like 'first' and 'second'. But this method seems way more straightforward. Thanks for the suggestion!