您的位置:首页 > 其它

sharepoint 2013:活动目录迁移用户后,在sharepoint中move 用户

2016-09-11 00:16 549 查看
Get-SPUser -web http://wfe1 | fl (查看该网站集中的账户)

$user = Get-SPUser -web http://wfe1 -Identity 18 (将id为18的账户赋予变量$user ,不用变量下面一条语句会失败,18也可以用用户名取代)

Move-SPUser -IgnoreSID -Identity $user -NewAlias 'test\sale02' (将该账户迁移为新账户,可以在同一个域中,也可以不同域)

该操作在web application下所有网站级都会生效

---------------------------------------------------------------------

如果上面的不能在所有网站集生效,可以用下面的代码修改迁移:(不推荐)

#该脚本只做用户迁移,不能做group迁移,如果要做group迁移,将脚本中的loginname 改为displayname即可;

Add-PSSnapin Microsoft.SharePoint.PowerShell

$ConfirmPreference = 'None' #关闭确认提示

$filePath="c:\file\"

$allUsers=get-content C:\file\user.txt -Encoding UTF8 #从文件中读取需要迁移的账户,每一行包含旧账户,新账户和新的email地址,字段之间用---隔开

$webApp=get-spwebapplication "http://wfe1.test.com" #设置需要迁移账户的web application

$allSites= $webApp.sites

foreach ($site in $allSites)

{

"正在查询$site......"

$SiteUsers=Get-SPUser -Web $site.url.ToString()

foreach ($siteUser in $SiteUsers)

{

foreach ($user in $allUsers)

{

$oldUser=($user.tostring() -split "---" )[0]

$NewEmail=($user.tostring() -split "---" )[2]

if (($siteuser.ToString() -split "\|" )[1])

{

$userPrefix=($siteuser.ToString() -split "\|" )[0]

$NewUser=$userprefix+"|"+($user.tostring() -split "---" )[1]

}

else

{

$NewUser=($user.tostring() -split "---" )[1]

}

if ($siteUser.LoginName.tostring().toupper().contains($oldUser.ToUpper())) #判断站点中是否存在该用户

{

“ ***找到账户$user,正在处理中......”

$datetime=get-date

$date=$datetime.ToString('yyyy-MM-dd')

$outInfo=($datetime.ToString() +" "+$site.url.ToString() + " Moving "+$siteUser.LoginName.tostring() +" To $newuser and Setting Email:$newemail")

Out-File -filePath $filepath$date.TXT -inputobject $outInfo -Append -Encoding UTF8

set-spuser -Identity $siteUser -web $site.url -Email $NewEmail 2>>$filepath$date.TXT

#set-spuser -Identity $siteUser -web $site.url -SyncFromAD 2>>$filepath$date.TXT

$siteuser1=Get-SPUser -Web $site.url.ToString() -Identity $siteUser

$FullUserLogin=$userPrefix+"|"+$NewUser

try

{

Move-SPUser -Identity $siteUser1 -NewAlias $newUser -IgnoreSID 2>>$filepath$date.TXT #move 账户前必须使用上面一条语句将账户get出来赋予给变量,然后才能在move语句中调用变量user否则报错

}

catch

{$error[0].Exception}

}

}

}

“ ”

$site.dispose()

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: