自动化管理活动目录中对象

     好久没更新了,最近在搞些linux方面的事情,powershell也就耽误了,更新个整理活动目录的脚本,供各位参考指正。

需求:

一、加域的计算机和人员要移动到对应分公司的OU(每个OU组策略有区别)

二、删除密码过期超过一年的用户

三、删除禁用账户

关键字:move-adobject

实现:windows计划任务定期执行

后期维护:定期看一下 执行返回值即可


<#
	.NOTES
	===========================================================================
	 Created with: 	SAPIEN Technologies, Inc., PowerShell Studio 2014 v4.1.63
	 Created on:   	2014/9/4 10:10
	 Created by:   	xing_ji
	 Organization: 
	 Filename:     
	===========================================================================
	.DESCRIPTION
		A description of the file.
#>
$host.UI.RawUI.WindowTitle = "move-adobject edit by xing_ji"
Import-Module ActiveDirectory
#移动计算机对象
$userpath = ‘OU=Standard_Computer,OU=CN_Computer,DC=cn,DC=synnex-grp,DC=com‘
$serverpath= ‘OU=Synnex_Server,OU=CN_Computer,DC=cn,DC=synnex-grp,DC=com‘
$temppath = ‘OU=Temp,OU=Standard_Computer,OU=CN_Computer,DC=cn,DC=synnex-grp,DC=com‘
$allcomputer=Get-ADComputer -SearchBase ‘CN=Computers,DC=cn,DC=synnex-grp,DC=com‘ -Filter *
foreach ($computer in $allcomputer)
{
 #因公司计算机标准名称为 四位英文+5位流水号
        if ($computer.name -match "\d{5}$"){
       move-adobject -Identity $computer.distinguishedName -TargetPath $userpath
      		}
 #将一些测试主机排除 含TES字眼
	    elseif ($computer.name -match "\D\d{2}$" -and $computer.name -notlike "*TES*"){
	   Move-ADObject -Identity $computer.distinguishedName  -TargetPath $serverpath
             }
        else {
       Move-ADObject -Identity $computer.distinguishedName  -TargetPath $temppath
       }
}

<#删除过期超过300天用户,删除账户有风险,所以这段我注释了,需要的取消注释即可
$disableusers=Get-ADUser -Filter ‘PasswordNeverExpires -eq "false" -and enabled -eq "true"‘ |ForEach{$_.name}
foreach ($disableuser in $disableusers){
$passwordlastset=Get-ADUser -Identity $disableuser -Properties * | foreach{$_.passwordlastset}
$pwdlastday=($passwordlastset).adddays(90)
$now=get-date
$expire_day=($pwdlastday - $now).days
if ($expire_day -le -300){
Remove-ADUser -Identity $disableuser -Confirm:$false 
}
}#>

#删除禁用帐户,系统内置账号记得保留,我这里保留了 guest\krbtgt等,按您需求
#Get-ADUser -Filter ‘enabled -eq "false" -and name -notlike "Guest" -and name -notlike "smartit" -and name -notlike "SUPPORT_388945a0" -and name -notlike "krbtgt"‘|Remove-ADUser

#移动AD用户,用switch更加明晰。
$cspath=‘OU=CS,OU=East,OU=Synnex_User,OU=CN_User,DC=cn,DC=synnex-grp,DC=com‘
$hfpath=‘OU=HF,OU=East,OU=Synnex_User,OU=CN_User,DC=cn,DC=synnex-grp,DC=com‘
$hzpath=‘OU=HZ,OU=East,OU=Synnex_User,OU=CN_User,DC=cn,DC=synnex-grp,DC=com‘
$nbpath=‘OU=NB,OU=East,OU=Synnex_User,OU=CN_User,DC=cn,DC=synnex-grp,DC=com‘
$ncpath=‘OU=NC,OU=East,OU=Synnex_User,OU=CN_User,DC=cn,DC=synnex-grp,DC=com‘

$alluser = Get-ADUser -SearchBase ‘OU=_Adjust,OU=CN_User,DC=cn,DC=synnex-grp,DC=com‘ -Filter * -Properties *
foreach ($user in $alluser)
{
	if ($user.displayname -match ‘_CS‘)
	{
		Move-ADObject -Identity $user.distinguishedName  -TargetPath $cspath
	}
elseif ($user.displayname -match ‘_HF‘){
		Move-ADObject -Identity $user.distinguishedName  -TargetPath $hfpath
}
elseif ($user.displayname -match ‘_HZ‘)
	{
		Move-ADObject -Identity $user.distinguishedName  -TargetPath $hzpath
	}
elseif ($user.displayname -match ‘_NB‘)
	{
		Move-ADObject -Identity $user.distinguishedName  -TargetPath $nbpath
	}
elseif ($user.displayname -match ‘_NC‘)
	{
		Move-ADObject -Identity $user.distinguishedName  -TargetPath $ncpath
	}

}


加入计划任务当中,按照我这样设置

注意点:

一、运行级别账户请使用系统账号,如果你用了自己的,万一你哪天离职,账户被删除,那计划任务就不能启动了。

二、并不是脚本之后就完全不用管了,还是要定期看一下任务返回值来判断是否执行成功,或者手动上去看看对象是否都在正确的位置。

运行有小半年了,没问题,奉献给大家,对组织规模大的公司比较有用,省了我不少时间。希望能帮到您。

时间: 2024-10-13 19:33:27

自动化管理活动目录中对象的相关文章

使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码)

使用C#中的DirectorySearcher来获得活动目录中的组织结构与用户等信息,并在展示成树形结构(附源代码) 对于C#来说,取得活动目录中的组织结构相对简单,因为其在System.DirectoryServices命名空间中内置了DirectorySearcher的方法,我们可以组合多种过滤方式,来达到取得活动目录中的所有信息,当然,我现在还没有找到可以得到域用户密码的方式 :) 以下是关键片段 1private static SearchResultCollection _ADHelp

列举活动目录中的管理工具

◆ 活动目录用户和计算机--- ADUC--dsa.msc     用来管理当前域中的对象,委派域的管理权限,提升域的功能级别 ◆ 活动目录域和信任关系--ADDT---domain.msc     用来查看当前林的逻辑结构,提升域和林的功能级别,新建.编辑和查看信任关系, ◆ 活动目录站点和服务---ADSS---dssite.msc     用来查看当前林的物理结构,创建.编辑和删除站点信息,设置或者取消GC ◆ 组策略管理控制台--GPMC---gpmc.msc (在Windows2003

活动目录中的管理工具

● 活动目录用户和计算机--- ADUC--dsa.msc    用来管理当前域中的对象,委派域的管理权限,提升域的功能级别●活动目录域和信任关系--ADDT---domain.msc    用来查看当前林的逻辑结构,提升域和林的功能级别,新建.编辑和查看信任关系● 活动目录站点和服务---ADSS---dssite.msc    用来查看当前林的物理结构,创建.编辑和删除站点信息,设置或者取消GC● 组策略管理控制台--GPMC---gpmc.msc (在Windows2003需要手工下载安装

在活动目录中,转移和占用操作主机角色(转移)

如何转移操作主机 操作主机是Active Directory中的特殊对象,具备操作主机角色的域控制器担任着活动目录核心功能,如果操作主机不可用,整个活动目录都会出现异常,甚至崩溃. 操作主机角色的唯一性决定了不是任意一台域控制器都能管理整个域,当一台承担着操作主机角色的域控制器需要停机维护,就需要将主机角色转移到另一台正常运行的域控制器上:但是当承担操作主机角色的域控制器突然崩溃,无法正常运行,就需要使用强制手段占用操作主机,它被称为强制转移 案例:某公司采用Windows Server 200

在活动目录中,转移和占用操作主机角色(占用)

如何占用操作主机 操作主机是ActiveDirectory中的特殊对象,具备操作主机角色的域控制器担任着活动目录核心功能,如果操作主机不可用,整个活动目录都会出现异常,甚至崩溃. 操作主机角色的唯一性决定了不是任意一台域控制器都能管理整个域,当一台承担着操作主机角色的域控制器需要停机维护,就需要将主机角色转移到另一台正常运行的域控制器上:但是当承担操作主机角色的域控制器突然崩溃,无法正常运行,就需要使用强制手段占用操作主机,它被称为强制转移    案例:某公司网络采用Windows server

活动目录中的Get-Aduser这个cmdlets调用的是账户的哪个属性?

get-aduser是活动目录管理最常用的cmdlets,但是在日常应用的时候我们常常无法调取到某个账户.这个问题原因最常见的就是重名.首先要理清一个问题Get-aduser+账户不等于AD管理器中的搜索功能(搜索必须使用 –filter 参数).但是get-aduser到底应该输入账户的那个属性才能准确get到这个用户呢? 我们举一个例子: 在组织里面有两个叫zhangpeng的账户,下图是其中之一,在这里还看不出: 从下面这个图中可以清楚的看出来,其实调用的是账户的samaccountnam

学习总结-Active Directory 域服务管理-活动目录部署

活动目录部署 一.先决条件 1.1)支持的版本:windows server 2.2)指定DC服务器的计算机名,承载NTDS.DIT数据库,安装ADDS服务,提供LDAP的查询服务,提供kerborse身份验证 2.3)准备IP地址,DNS信息 创建的第一台DC默认是第一个森林的根域,DNS服务器,GC(全局编录服务器) 二.部署过程 GUI: 2.1)添加ADDS角色 2.2)配置DC Sserver Code: 2.3)sconfig工具设置计算机,IP地址,DNS等信息 2.4)使用pow

Windows Server 2012活动目录基础配置与应用(新手教程)之4---域用户的基本管理

下面分几种方式介绍域用户的创建. 1.图形化界面(前文已介绍) STEP1:以自己的名称新建一个账户(或者使用已存在的账户,以自己的名字命名),按如下示例修改该账户的属性: STEP2:每个人为自己所在宿舍的其他人员创建一个账户.(提示:可以复制账户)分析这种方式的优缺点. 2.利用命令方式完成 STEP1:查看dsadd命令帮助信息,从中找到与添加用户有关的指令. STEP2:查看dsadd  user的帮助信息. STEP3:本例中,当前域名为ahgf01.com.cn.下面需要增加名字为u

36. PowerShel -- 活动目录介绍(2)

PowerShel -- 活动目录管理(1) 本系列所有脚本均在Windows Server 2008 R2 DataCenter (PowerShell 2.0) + PowerGUI Script Editor Free Edition x64中测试通过. 活动目录(Active Directory)是Windows操作系统下的一种企业资源解决方案.其体系结构如下: 在Windows Server 2008 R2上安装了活动目录角色后,会有如下一些管理工具: Active Directory