PowreShell场景:自动添加OU用户到指定的组
场景:
最近上了Citrix虚拟桌面,其中有一个场景需要将某个部门OU下所有用户添加到指定的组.
由于AD域中没有类似Exchange中动态组的功能,我准备用PowerShell脚本来达到自动更新这个组的成员.
步骤:
首先我将组的描述中写入对应OU的DistinguishedName,以此来确定组与OU对应的关系.
当然,如果公司的描述字段另有用处,你也可以使用别的闲置字段,或者直接在域架构中扩展字段.这里就不展开讲了.
接下来我们就可以编写脚本了.
#初始化变量$LogName="D:\VDI_AddNewVDIUsersToVDIGroup_Log.csv"#获取VDI组$VDIGroups=Get-ADGroup-Filter{Description-Like"OU=*"}-SearchBase"OU=Groups,OU=VDI,OU=ApplicationSystems,DC=Contoso,DC=com"-PropertiesDescription#准备添加成员Foreach($VDIGroupin$VDIGroups){#获取成员所在OU$SearchBase=Get-ADOrganizationalUnit$VDIGroup.Description#获取OU中成员$Members=Get-ADUser-Filter{employeeid-like"*"}-SearchBase$SearchBase#获取VDIGroup中已存在的成员$ExistMembers=Get-ADGroupMember-Identity$VDIGroup#准备比对成员是否已存在组中Foreach($Memberin$Members){#比对成员是否已存在组中if($ExistMembers.ObjectGUID-notcontains$Member.ObjectGUID){#生成日志(Get-Date).ToString('yyyy-MM-ddHH:mm:ss')+','+$VDIGroup.Name+','+$Member.Name|Out-File-FilePath$LogName-Append-Encodingutf8#添加成员Add-ADGroupMember-Identity$VDIGroup.ObjectGUID-Members$Member}}}
将上面的脚本添加至计划任务.
1.输入描述内容[非必须]
2.选择用户[用户必须对AD组有操作权限]
3.选中"不管用户是否登录都要运行"
4.不要勾选"不存储密码"
5.不要勾选"使用最高权限运行"
6.设置好"重复任务间隔"
7.在操作里新建一项,在"程序和脚本"里填上"PowerShell",在"添加参数"里填上脚本的绝对路径.
接下来,这个脚本就会按照时间间隔来运行这个脚本了.
写得比较简陋,提供一个思路给各位.
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。