自動化管理活動目錄中對象

     好久沒更新了,最近在搞些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
	}

}



加入計劃任務當中,按照我這樣設置

注意點:

一、運行級別賬戶請使用系統賬號,如果你用了自己的,萬一你哪天離職,賬戶被刪除,那計劃任務就不能啓動了。

二、並不是腳本之後就完全不用管了,還是要定期看一下任務返回值來判斷是否執行成功,或者手動上去看看對象是否都在正確的位置。

wKiom1R2k2qyUdemAAJyHV76Jbg118.jpg

wKioL1R2k-7yqIufAAHrLlQUb4k780.jpg

wKioL1R2k--AcgDKAANiRyB9xZA874.jpg


運行有小半年了,沒問題,奉獻給大家,對組織規模大的公司比較有用,省了我不少時間。希望能幫到您。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章