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

时间:2015-09-01 14:45:22

标签: powershell powershell-v2.0 powershell-ise

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

例如

  

用户" Sam Test"有说明"老板"和部门" 123"。   他应该被添加到Testgroup_123。

我的目标

编写脚本以将用户添加到其关联的测试组_ ???。

测试组中只能有一个Boss(用户)_ ???。

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

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

 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?"}

1 个答案:

答案 0 :(得分:1)

如果我理解你的权利,请尝试以下代码:

$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. 检查每个用户是否有“老板”或“助理”的描述匹配
  3. 获取用户的部门属性(例如666)
  4. 检查组名“Testgroup_666”是否存在,如果没有,请在您定义的路径中创建新名称
  5. 检查用户是否还不是该组的成员,如果没有添加,则将该用户添加到该组