Home > Enterprise >  I am trying to add members to a AD group based on a value in the "title" attribute
I am trying to add members to a AD group based on a value in the "title" attribute

Time:12-21

I am trying to add members to a AD group based on a value in the "title" attribute. I have about 30 different tiles i want to use. Is there a way to write the command witout 30 "OR" statements?

Thanks

Get-ADuser -filter {(title -eq "SECSCH") -or (title -eq "SEC12") -or (title -eq 
"LTOSEC") -or (title -eq "LTO12")} | %{Add-ADGroupMember "SDK test print color" 
$_.SamAccountName} 

Also, for another group I would like All "custod" in title except at location "85c" and "42c" Below is where i am at.

Get-ADuser -filter {(title -eq "custod") -and (locationNumber -ne "85c") -or (title -eq 
"custod") -and (locationNumber -ne "42c")} | %{Add-ADGroupMember "SDK test print 
convert" $_.SamAccountName}

CodePudding user response:

For your first issue you can create an array which contains your titles and browse it.

Example :

$Titles = "SECSCH","SEC12","LTOSEC","LTO12"

foreach($Title in $Titles){
    Get-ADuser -filter {title -eq $Title} | %{Add-ADGroupMember "SDK test print color" $_.SamAccountName} 
}

CodePudding user response:

The -Members parameter can take an array of ADPrincipal objects so what you can do instead of using so many 'OR's in the Filter is using a Where-Object clause afterwards.

This will allow you to use operators like -contains or -match

$titles = "SECSCH","SEC12","LTOSEC","LTO12" # your 30  titles here
$users  = Get-ADUser -Filter * -Properties Title | Where-Object { $titles -contains $_.Title }
Add-ADGroupMember -Identity "SDK test print color" -Members $users

As for your second code change the Filter to below

$filter = "Title -eq 'custod' -and (locationNumber -ne '85c' -and locationNumber -ne '42c')"
$users  = Get-ADUser -Filter $filter -Properties Title, locationNumber
Add-ADGroupMember -Identity "SDK test print convert" -Members $users

Note: the property locationNumber is AFAIK not a standard attribute in AD. Is that a custom property in your organization or do you perhaps mean something else like Division or EmployeeNumber ?

  • Related