sharepoint 2013:活动目录迁移用户后,在sharepoint中move 用户 powershell
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sharepoint 2013:活动目录迁移用户后,在sharepoint中move 用户 powershell相关的知识,希望对你有一定的参考价值。
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()
}
本文出自 “博深” 博客,转载请与作者联系!
以上是关于sharepoint 2013:活动目录迁移用户后,在sharepoint中move 用户 powershell的主要内容,如果未能解决你的问题,请参考以下文章
sharepoint 2013 修改某些显示名,email和活动目录不一致的账户 powershell
Office 365 SharePoint 迁移浅谈 SMAT 2013 介绍
将 SharePoint 2013 WSP(Web 部件)迁移到 SharePoint 2019(本地)[关闭]