活动目录 powershell 从组中 添加\删除 用户
2016-12-13 09:46
399 查看
某组织的ou中的账户可能经常需要移动,每个部门ou都有部门组,以dep_开头,如果账号从ou1移动到ou2,则账号需要从ou1中的部门组中删除,同时,要添加到ou2的部门组中,脚本如下:
$ConfirmPreference="none" #关闭confirm确认提示
$ou_all=Get-ADOrganizationalUnit -Filter * -SearchBase "OU=sales_ou,DC=test,DC=com"
#查询特定ou
$filePath="c:\"
$datetime=get-date
$date=$datetime.ToString('yyyy-MM-dd')
foreach ($ou in $ou_all)
{
$group=Get-ADGroup -Filter {name -like "dep_*"} -SearchBase $ou -SearchScope OneLevel
#只查询名称为dep_开头的组
$user_all=Get-ADUser -Filter * -SearchBase $ou -SearchScope OneLevel
#查询当前ou下的所有用户
if ($user_all)
{
foreach ($user in $user_all)
{
if($group)
{
$members=Get-ADGroupMember -Identity $group
if ($members.name -notcontains $user.Name)
#判断用户是否在当前ou的dep_开始的名称的组中,如果不在组中,后面的循环则添加用户到组
{
$outinfo= "Adding " + $user.name+ " to " +$group.name + " in " +$ou.DistinguishedName
Out-File -filePath $filepath$date.TXT -inputobject $outInfo -Append
Add-ADGroupMember $group -Members $user 2>> $filepath$date.TXT
}
}else {
$outinfo= "The Group Does not exist in " + $ou.DistinguishedName >> $filepath$date.TXT
Out-File -filePath $filepath$date.TXT -inputobject $outInfo -Append
}
}
if ($group)
{
$members_new=Get-ADGroupMember -Identity $group
foreach ($member_new in $members_new)
{
if ($user_all.name -notcontains $member_new.name)
#判断组中是否有不在当前ou中的用户,如果有,后面的循环则删除组中的改该用户
{
$outinfo= "Removing "+ $member_new.name+ " from " + $group.Name + " in " + $ou.DistinguishedName
Out-File -filePath $filepath$date.TXT -inputobject $outInfo -Append
Remove-ADGroupMember -Identity $group -Members $member_new 2>> $filepath$date.TXT
}
}
}
}
}
$ConfirmPreference="none" #关闭confirm确认提示
$ou_all=Get-ADOrganizationalUnit -Filter * -SearchBase "OU=sales_ou,DC=test,DC=com"
#查询特定ou
$filePath="c:\"
$datetime=get-date
$date=$datetime.ToString('yyyy-MM-dd')
foreach ($ou in $ou_all)
{
$group=Get-ADGroup -Filter {name -like "dep_*"} -SearchBase $ou -SearchScope OneLevel
#只查询名称为dep_开头的组
$user_all=Get-ADUser -Filter * -SearchBase $ou -SearchScope OneLevel
#查询当前ou下的所有用户
if ($user_all)
{
foreach ($user in $user_all)
{
if($group)
{
$members=Get-ADGroupMember -Identity $group
if ($members.name -notcontains $user.Name)
#判断用户是否在当前ou的dep_开始的名称的组中,如果不在组中,后面的循环则添加用户到组
{
$outinfo= "Adding " + $user.name+ " to " +$group.name + " in " +$ou.DistinguishedName
Out-File -filePath $filepath$date.TXT -inputobject $outInfo -Append
Add-ADGroupMember $group -Members $user 2>> $filepath$date.TXT
}
}else {
$outinfo= "The Group Does not exist in " + $ou.DistinguishedName >> $filepath$date.TXT
Out-File -filePath $filepath$date.TXT -inputobject $outInfo -Append
}
}
if ($group)
{
$members_new=Get-ADGroupMember -Identity $group
foreach ($member_new in $members_new)
{
if ($user_all.name -notcontains $member_new.name)
#判断组中是否有不在当前ou中的用户,如果有,后面的循环则删除组中的改该用户
{
$outinfo= "Removing "+ $member_new.name+ " from " + $group.Name + " in " + $ou.DistinguishedName
Out-File -filePath $filepath$date.TXT -inputobject $outInfo -Append
Remove-ADGroupMember -Identity $group -Members $member_new 2>> $filepath$date.TXT
}
}
}
}
}
相关文章推荐
- 活动目录大批量用户快速导入及误删除快速恢复
- windows server 恢复活动目录中误删除用户等对象
- 活动目录大批量用户快速导入及误删除快速恢复
- 学习在活动目录中一次同时添加多个用户帐户
- 活动目录实战之四 win2008 r2 AD中大批量添加用户账号
- 添加删除用户、组,分配目录权限
- Linux添加删除用户和组以及目录与文件的权限
- linux里添加删除用户和组,并设置用户目录
- 活动目录管理---批量用户添加登录到指定计算机
- 活动目录大批量用户快速导入及误删除快速恢复
- 活动目录误删除用户恢复工具 ADRestore.exe
- Linux学习笔记-目录解释、添加删除用户、更新密码
- Win2003学习(三),快速恢复活动目录中已删除用户和OU
- 活动目录之四 win2008 r2 AD中大批量添加用户账号
- 学习在活动目录中一次同时添加多个用户帐户
- c#添加、删除、修改windows用户,目录用户
- c#活动目录添加用户
- 活动目录大批量用户快速导入及误删除快速恢复
- W2K用户管理--活动目录实例
- 在03活动目录域中添加Windows Server 2008域控制器