当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 Move-SPUser 将 SharePoint 用户从一个域迁移到另一个域

作者:精品下载站 日期:2024-12-15 00:01:23 浏览:12 分类:玩电脑

使用 Move-SPUser 将 SharePoint 用户从一个域迁移到另一个域


要求:
在收购期间,我们公司决定通过在我们的 AD 中重新创建其用户 ID 来与被收购公司的 AD 合并。此外,被收购的公司拥有许多 SharePoint 网站,我们希望将它们迁移到我们的 SharePoint 环境中。

这带来了另一个挑战,即在域之间重新映射用户 ID 和权限。我们如何将 SharePoint 用户从一个域迁移到另一个域?

如何在 SharePoint 中将用户从一个域迁移到另一个域?

嗯,在 SharePoint 2007 时代,我使用 STSADM 在域之间迁移用户:
Stsadm -o migrateuser -oldlogin 域\OldUserID -newlogin 域\NewUserID -ignoresidhistory

现在,在 SharePoint 2013 中,它被 PowerShell cmdlet 取代:Move-SPUser


$WebURL="https://intranet.crescent.com"
$Web = Get-SPWeb $WebURL

$OldID="i:0#.w|Crescent\Opera1"
$NewID="i:0#.w|Crescent\Opera2"

$OldUser = $Web.EnsureUser($OldID)
Move-SPUser -Identity $OldUser -NewAlias $NewID -ignoresid -Confirm:$false

我们没有将用户逐个迁移,而是准备了一个 CSV 文件,将用户从一个域映射到新域,并使用 PowerShell 脚本批量迁移用户。

这是我的 CSV 文件结构:

[玩转系统] 使用 Move-SPUser 将 SharePoint 用户从一个域迁移到另一个域

CSV 文件仅将旧的 SAMAccountName 与新的 SAMAccountName 进行映射。

用于将用户从一个域迁移到另一个域的 PowerShell 脚本:


Add-PSSnapin Microsoft.SharePoint.PowerShell

#Import data from CSV file
$UserData = Import-CSV -path "C:\Accounts.csv"

#Iterate through each Row in the CSV
foreach ($Row in $UserData)
 {
    write-host "Processing user:" $row.Email

    #Site collection URL
    $siteURL ="https://intranet.crescent.com"
    $site = Get-SPSite $siteURL

    foreach($web in $site.AllWebs)
     {
        #Get All Users
        $UserColl = Get-SPUser -web $web.Url

        foreach ($User in $UserColl)
        {
            #Get values from CSV File
            $OldUserID= $Row.OldUserID.Trim()
            $NewUserID =$Row.NewUserID.Trim()
            $Email = $Row.Email.Trim()

            #Search for Old User Accounts
            if($User.UserLogin.Contains($OldUserID))
             {
                #Update the User E-mail
                Set-SPUser -Identity $User.UserLogin -Email $Email -Web $web.URL

                $NewUser = $User.UserLogin.replace($OldUserID, $NewUserID)

                #Migrate user from Old account to new account - migrate users to new domain
                Move-SPUser -Identity $User -NewAlias $NewUser -IgnoreSID -confirm:$false
                write-host "User Migrated: $($User.userlogin) at site $($web.Url)"
             }        
        }
    }
}

此 PowerShell 脚本以编程方式将用户迁移到新域。

您可以在以下情况下使用 Move-SPUser cmdlet:
  1. 用户帐户已删除并在 AD 中重新创建(使用新的 Sid)
  2. 用户帐户从一个域更改为另一个域
  3. 用户帐户的登录 ID 发生更改(例如由于姓氏更改)。

将 SharePoint 中的 AD 组从旧域迁移到新域:

使用此 PowerShell 脚本将 Active Directory 安全组从一个域迁移到另一域。


#Old and New Groups
$OldLogin="OldDomain\Group"
$NewLogin="NewDomain\Group"

#Migrate AD Group
$Farm = Get-SPFarm
$Farm.MigrateGroup($OldLogin, $NewLogin)

好的。现在,如何在网站集 Web 应用程序或场级别将所有唯一用户和 AD 组获取到 CSV 文件?那么,使用这些 PowerShell 脚本:

  • 如何使用 PowerShell 将 SharePoint 场 - Web 应用程序 - 网站集 - 网站的所有用户导出为 CSV?
  • 用于查找 SharePoint 中所有 Active Directory 组的 PowerShell 脚本

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯