Script to select users from specific OUs and with Specific Department codes.

Frequent Contributor

Hey Team, 

I would like to do the following: 

 

1) Search 5 separate OUs 

2) Select All users from those OUs with a specific Department code - DepartmnetCode looks like 123456 (4-7 numbers, all in a list).

3) Select only users with a City specific city defined in their ad user account (Los Angeles, Santa Monica) etc. 

 

I have about 120 department codes in a text file. some of our users have those department codes defined in their AD accounts. I can define the variables easy enough but the place i always hit the most difficulty is the foreach commands. 

 

$DepartmentCode = Get-Content c:\temp\departmentCode.txt

$ous = 'OU=Test 1,DC=domain,DC=com','OU=Test 2,DC=domain,DC=com'

$Cities = "Los Angeles", "Santa Monica", "Playa Vista", "Culver City"

 

I know that i can use SearchBase

 

Get-ADUser -SearchBase -Filter * -SearchBase $_ous? but how do i tell PowerShell to only select users in that have a matching City in their AD Account as per the $Cities Variable? and also how to i tell PS to only select users that have a departmentcode (defined on their ad user account, and in my department code list). ?

 

Any ideas? Maybe a similar script so i can see how it might work ? 

 

Thanks, 

 

Robert 

 

 

1 Reply

What you need to look at is Where-Object.

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/where-object?view=power...

You could do something like this:

Get-ADUser -SearchBase -Filter * -SearchBase $ous | Where-Object  {$departmentcode -contains $_.department -and $Cities  -contains $_.City}