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(本地)[关闭]

powershell 这将通过活动目录和SharePoint直接权限提供用户列表。这是未完成的,需要一堆改进

将WSS 3.0库迁移到Sharepoint 2013