将具有 Active Directory 描述属性的用户添加到包含部门属性的组

Add Users with Active Directory Description Attribute to a group containing the Department Attribute

我尝试将具有特殊描述的 AD 的每个用户添加到包含部门属性(最多 3 位数字)作为后缀的组。

例如

A User "Sam Test" has the Description "Boss" and the Department "123". He should be added to Testgroup_123.

我的目标

编写脚本将用户添加到其关联的 Testgroup_???。

一个测试组只能有一个老板(用户)_???.

出于测试原因,我只尝试输出名称。

到目前为止,这是我的代码:

 import-module ActiveDirectory
    $user = 
    Get-ADUser -filter {(description -like "Boss") -or 
                        (description -like "boss") -or 
                        (description -like "Assistant")} -searchbase "OU=TestOU,DC=TE,DC=ADS" -Properties Enabled, description, sAMAccountName, Department | select Department | Foreach {Write-Host "Testgroup_$user<-empty?"}

如果我理解你的权利,试试这个代码:

$Users = Get-ADUser -Filter * -Properties Description,Department

    foreach ($user in $Users)
    {

        if ($user.Description -match "Boss|Assistant") 
        {

        $Dep = $User.Department

        if (-not(Get-ADGroup "Testgroup_$Dep")) 

            {
            New-ADGroup -Path "OU=TestOU,DC=TE,DC=ADS" -Name "Testgroup_$Dep" -GroupScope Global
            }

        else
            {
                $GroupMembers = Get-ADGroupMember -Identity "Testgroup_$Dep" | Select -ExpandProperty SamAccountName
                if ($User.SamAccountName -notin $GroupMembers)
                {
                Add-ADGroupMember -Identity "Testgroup_$Dep" -Members $User
                }
            }
        }
    }
  1. 首先获取所有用户
  2. 检查每个用户的描述匹配 "Boss" 或 "Assistant"
  3. 获取用户的部门属性(例如666)
  4. 检查组名"Testgroup_666"是否存在,如果不存在则在您定义的路径中新建一个
  5. 检查用户是否还不是该组的成员,如果不是则将用户添加到组