編制AD域OU與用戶組自動同步腳本


在AD域的管理中,OU通常是企業中部門成員的容器,組是用於企業內的授權,這兩個不同類別的概念卻往往因為相同的成員而成為許多IT管理員的苦惱,例如一個新同事的入職,他的AD賬號往往由人事的同事創建並添加到相應OU,而將其添加到對應的各種權限組,則成為了IT管理員一件十分繁瑣的事情,下面我們將演示如何利用Powershell腳本來省去IT管理員的這項工作。

一、       創建用戶組

要實現自動同步必須讓程序知道源數據和目標數據的對應關系,本腳本利用用戶組的注釋屬性進行對應,你可以根據自己情況使用其它屬性操作。我們在用戶組注釋欄內填入需要同步OU的DN路徑。

 

 

二、       編制腳本

OuSync.ps1內容如下:

#自動同步AD中OU成員到對應組中

$LogName = "C:\users\AddNewUsers_Log.csv"

#獲取組名

$VDIGroups = Get-ADGroup -Filter {info -Like "OU=*"} -SearchBase ",OU=sale,OU=users,DC=chery,DC=com" -Properties info

#准備添加成員

Foreach ($VDIGroup in $VDIGroups) {

    #獲取成員所在OU

    $SearchBase = Get-ADOrganizationalUnit $VDIGroup.info

    #獲取OU中成員

    $Members = Get-aduser -Filter {Enabled -eq "true"} -SearchBase $SearchBase

    #獲取VDIGroup中已存在的成員

    $ExistMembers = Get-ADGroupMember -Identity $VDIGroup

    #比對成員是否已存在組中

    Foreach ($Member in $Members){       

         $ExistStatus=0

    Foreach($ExistMember in $ExistMembers){

                   #比對成員是否已存在組中         

                   if( $ExistMember.ObjectGUID -eq $Member.ObjectGUID ){

                           $ExistStatus=1

                   }

         } 

        if ($ExistStatus -eq "0"){

            #不在組中則生成日志

            (Get-Date).ToString('yyyy-MM-dd HH:mm:ss') + ',' + $VDIGroup.Name + ',' + $Member.Name |Out-File -FilePath $LogName -Append -Encoding utf8

            #添加成員

            Add-ADGroupMember -Identity $VDIGroup.ObjectGUID -Members $Member

        }

    }

}

 

  

三、       創建計划任務

計划任務定時運行腳本需要注意的是使用具備權限的用戶帳戶;

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM