2015-09-01 49 views
0

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

对于实施例

A用户 “萨姆测试” 具有描述 “老板” 和该部 “123”。 他应该被添加到Testgroup_123。

我的目标

编写一个脚本来将用户添加到其相关的Testgroup _ ???。

Testgroup中只能有一个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

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

$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. 检查用户是否不是该用户的成员组,如果不添加用户加入组
+0

它正在朝着正确的方向前进。但在3我只是想要部门的价值。它不应该等于“123”或其他任何东西。然后Groupname应该获得该属性。 – BlueFox

+0

更新了我的答案,现在检查它 – Avshalom

+0

现在正常工作,谢谢! – BlueFox

相关问题