最近同事在忙域用户的迁徙。今天早上他给了我个已经迁徙了的名单,让我帮忙写个简单的脚本,从一个csv文件里面读取用户的名字,然后从域 A里面获取extensionattribute10的值,写入另外一个域B 里面对应的用户属性里,然后把该用户从A里的某个用户组里删掉。
我的基本思路很简单,在域A里面读取C文件,把用户名字放入数组,然后循环读取每一个名字,查找对应的属性值,输出到文本D,顺便把该用户从对应的组里面删掉。
$db=get-contentc:\users\yuan.li.mitch\desktop\test.log
foreach( $data in $db) {
$Attribute=get-AdUser $data -properties extensionattribute10
$data + ","+ $Attribute.extensionattribute10 >> .\user.csv
remove-adgroupmember-identity "group.citrix.mozilla" -members $name –confirm:false
}
然后在域B里面读取文本D,更改对应的数据,然后再确认一下是否都更改了
#############Update######################
$db=Get-ContentC:\temp\users.csv
foreach ( $data in $db) {
$namesplit=$data.Split(",")
$username=$namesplit[0]+"."+$namesplit[1]
$cardnumber=$namesplit[2]
set-aduser $username -add@{extensionattribute10=$cardnumber}
}
###############Confirm#####################
$db=Get-ContentC:\temp\users.csv
foreach ( $data in $db) {
$namesplit=$data.Split(",")
$username=$namesplit[0]+"."+$namesplit[1]
$cardnumber=$namesplit[2]
try{
$att=get-aduser $username-properties extensionattribute10
if ($att.extensionattribute10-eq $cardnumber){
write-host "succesful"
}
else
{
write-host "failed"
$username >>c:\temp\logs\list.txt
}
}
Catch
{$_ | Out-FileC:\temp\logs\errors.txt -Append
}
}