设为首页 收藏本站
查看: 1235|回复: 0

[经验分享] 通过PowerSell在不同域之间迁移或复制OU和User

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-3-16 08:45:40 | 显示全部楼层 |阅读模式
最近有个需求,公司需要搭建一个预发布环境出来, 需要把生产中的AD用户导出至预发布环境中,刚开始准备用csvde导出导入,后来干脆使用PowerShell,下面是针对某一个OU下的用户进行复制到另外一个域中并启用账户统一设定密码,再次感谢朋友费Sir同我一起测试到深夜 j_0063.jpg
先来说说大致的思路:要迁移某个OU下的用户,而且需要迁移OU,那么我们需要先迁移OU过去,然后迁移User,最后还有个需求,需要迁移用户的经理,那么也是需要迁移完用户后再统一设定用户的Manager了
下面以复制物流中心这个OU为例进行迁移
#导出物流中心OU
1
2
$oucsv = 'C:\Users\sys_robin\OUexportWuliu.csv'
Get-ADOrganizationalUnit -SearchBase 'OU=物流中心,DC=corp,DC=viplab,DC=com' -Filter * -Properties * | select name,distinguishedName | export-csv $oucsv -Encoding UTF8 -NoTypeInformation



#导入物流中心OU
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import-module activedirectory
$OldDom = 'DC=corp,DC=viplab,DC=com'
$NewDom = 'DC=corp,DC=demo,DC=com'
$oucsv = 'c:\OUexportWuliu.csv'
$success = 0
$failed = 0
$oulist = Import-Csv $oucsv
$oulist | foreach {
$outemp = $_.Distinguishedname -replace $OldDom,$NewDom
#need to split ouTemp and lose the first item
$ousplit = $outemp -split ',',2
$outemp
Try {
$newOU = New-ADOrganizationalUnit -name $_.Name -path $ousplit[1] -EA stop
Write-Host "Successfully created OU: $_.Name"
$success++
}
Catch {
Write-host "ERROR creating OU: $outemp" #$error[0].exception.message"
$failed++
}
Finally {
echo ""
}
}
Write-host "Created $success OUs with $failed errors"



#导出物流中心下用户
1
2
$path= 'C:\Users\sys_robin\ADUsers_Wuliu.csv'
Get-ADUser -SearchBase 'OU=物流中心,DC=corp,DC=viplab,DC=com' -Filter * -Properties * |select sAMAccountName,cn,name,objectCategory,description,displayName,userPrincipalName,distinguishedName,title,manager,department,employeenumber | Export-csv $path -NotypeInformation -Encoding:UTF8



#导入物流中心下用户
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Import-Module activedirectory
$OldDom = 'DC=corp,DC=viplab,DC=com'
$NewDom = 'DC=corp,DC=demo,DC=com'
$oldUPN = 'corp.viplab.com'
$NewUPN = 'corp.demo.com'
$password = ConvertTo-SecureString 'abc.123' -asplaintext -force
$Usercsv = 'c:\ADUsers_Wuliu.csv'
$success = 0
$failed = 0
$Userlist = Import-Csv $Usercsv
$Userlist | foreach {
$Usertemp = $_.Distinguishedname -replace $OldDom,$NewDom
$UserUPN  = $_.UserPrincipalName -replace $oldUPN,$NewUPN
#need to split UserTemp and lose the first item
$Usersplit = $Usertemp -split ',',2
$Usertemp
Try {
$newUser = New-ADUser -name $_.Name -SamAccountName $_.SamAccountName -Description $_.description -displayname $_.displayname -title $_.title -department $_.department  -UserPrincipalName  $UserUPN -EmployeeNumber $_.EmployeeNumber -AccountPassword $password -Enable $true -path $Usersplit[1]  -EA stop
Write-Host "Successfully created User: $_.Name"
$success++
}
Catch {
Write-Host "ERROR creating OU: $Usertemp" #$error[0].exception.message"
$failed++
}
Finally {
echo ""
}
}
Write-host "Created $success Users with $failed errors"



#设定物流中心用户的Manager
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Import-Module activedirectory
$OldDom = 'DC=corp,DC=viplab,DC=com'
$NewDom = 'DC=corp,DC=demo,DC=com'
$Usercsv = 'c:\ADUsers_Wuliu.csv'
$success = 0
$failed = 0
$Userlist = Import-Csv $Usercsv
$Userlist | foreach {
$UserManager = $_.Manager -replace $OldDom,$NewDom
Try {
$Usertemp = $_.Distinguishedname -replace $OldDom,$NewDom
$SetManager = Set-ADUser -Identity $_.SamAccountName -Manager $UserManager  -EA stop
Write-Host "Successfully Set Manager: $_.Name"
$success++
}
Catch {
Write-Host "ERROR Set Manager: $Usertemp" #$error[0].exception.message"
$failed++
}
Finally {
echo ""
}
}
Write-host "Created $success Users with $failed errors"



使用如上脚本,可以顺利迁移AD域中的OU和用户到新的测试域中,如果有多个OU,可以使用相同 的方法进行迁移,也可以整理下脚本,一次迁移多个OU。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-47119-1-1.html 上篇帖子: Windows Server 2008安装与基本配置 下篇帖子: windows server 2008 R2 域中用组策略隐藏指定磁盘驱动器(盘符) windows 操作系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表