2015-09-01 50 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

相關問題