PowreShell場景:自動添加OU用戶到指定的組

場景:架構

最近上了Citrix虛擬桌面,其中有一個場景須要將某個部門OU下全部用戶添加到指定的組.ide

因爲AD域中沒有相似Exchange中動態組的功能,我準備用PowerShell腳原本達到自動更新這個組的成員.ui

步驟:日誌

首先我將組的描述中寫入對應OU的DistinguishedName,以此來肯定組與OU對應的關係.blog

clip_image001

固然,若是公司的描述字段另有用處,你也能夠使用別的閒置字段,或者直接在域架構中擴展字段.這裏就不展開講了.ip

接下來咱們就能夠編寫腳本了.get

#初始化變量
$LogName = "D:\VDI_AddNewVDIUsersToVDIGroup_Log.csv"

#獲取VDI組
$VDIGroups = Get-ADGroup -Filter {Description -Like "OU=*"} -SearchBase "OU=Groups,OU=VDI,OU=Application Systems,DC=Contoso,DC=com" -Properties Description

#準備添加成員
Foreach ($VDIGroup in $VDIGroups) {
    #獲取成員所在OU
    $SearchBase = Get-ADOrganizationalUnit $VDIGroup.Description
    #獲取OU中成員
    $Members = Get-ADUser -Filter {employeeid -like "*"} -SearchBase $SearchBase
    #獲取VDIGroup中已存在的成員
    $ExistMembers = Get-ADGroupMember -Identity $VDIGroup
    #準備比對成員是否已存在組中
    Foreach ($Member in $Members){
        #比對成員是否已存在組中
        if ($ExistMembers.ObjectGUID -notcontains $Member.ObjectGUID){
            #生成日誌
            (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
        }
    }
}


將上面的腳本添加至計劃任務.it

1.輸入描述內容[非必須]io

2.選擇用戶[用戶必須對AD組有操做權限]class

3.選中"無論用戶是否登陸都要運行"

4.不要勾選"不存儲密碼"

5.不要勾選"使用最高權限運行"

clip_image002

6.設置好"重複任務間隔"

clip_image003

7.在操做裏新建一項,在"程序和腳本"裏填上"PowerShell",在"添加參數"裏填上腳本的絕對路徑.

clip_image004

接下來,這個腳本就會按照時間間隔來運行這個腳本了.

寫得比較簡陋,提供一個思路給各位.

相關文章
相關標籤/搜索