PowreShell场景:自动添加OU用户到指定的组

发布时间:2020-04-11 09:36:38 作者:38088444
来源:网络 阅读:937

场景:

最近上了Citrix虚拟桌面,其中有一个场景需要将某个部门OU下所有用户添加到指定的组.

由于AD域中没有类似Exchange中动态组的功能,我准备用PowerShell脚本来达到自动更新这个组的成员.

步骤:

首先我将组的描述中写入对应OU的DistinguishedName,以此来确定组与OU对应的关系.

PowreShell场景:自动添加OU用户到指定的组

当然,如果公司的描述字段另有用处,你也可以使用别的闲置字段,或者直接在域架构中扩展字段.这里就不展开讲了.

接下来我们就可以编写脚本了.

#初始化变量
$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
        }
    }
}


将上面的脚本添加至计划任务.

1.输入描述内容[非必须]

2.选择用户[用户必须对AD组有操作权限]

3.选中"不管用户是否登录都要运行"

4.不要勾选"不存储密码"

5.不要勾选"使用最高权限运行"

PowreShell场景:自动添加OU用户到指定的组

6.设置好"重复任务间隔"

PowreShell场景:自动添加OU用户到指定的组

7.在操作里新建一项,在"程序和脚本"里填上"PowerShell",在"添加参数"里填上脚本的绝对路径.

PowreShell场景:自动添加OU用户到指定的组

接下来,这个脚本就会按照时间间隔来运行这个脚本了.

写得比较简陋,提供一个思路给各位.

推荐阅读:
  1. Powershell连接多服务器执行SQL脚本
  2. WebDriverWait详解

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

powershell ad组织 单位同步

上一篇:iOS内存暴增问题追查与使用陷阱

下一篇:学习《Flask Web开发:基于Python的Web应用开发实战》分享

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》