Tìm kiếm trang web

Di chuyển người dùng SharePoint từ miền này sang miền khác bằng Move-SPUser


Yêu cầu:
Trong quá trình mua lại, Công ty chúng tôi đã quyết định hợp nhất với AD của công ty được mua lại bằng cách tạo lại Id người dùng của họ trong AD của chúng tôi. Ngoài ra, công ty được mua lại có một số trang SharePoint và chúng tôi muốn di chuyển chúng sang môi trường SharePoint của mình.

Điều đó mang đến một thách thức khác trong việc ánh xạ lại Id người dùng với sự cho phép giữa các tên miền. Làm cách nào để di chuyển người dùng SharePoint từ miền này sang miền khác?

Làm cách nào để di chuyển người dùng từ miền này sang miền khác trong SharePoint?

Chà, trong SharePoint 2007 ngày, tôi đã sử dụng STSADM để di chuyển người dùng giữa các miền:
Stsadm -o Migrateuser -oldlogin domain\OldUserID -newlogin domain\NewUserID -ignoresidhistory

Giờ đây với SharePoint 2013, Nó được thay thế bằng lệnh ghép ngắn PowerShell: 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

Thay vì di chuyển từng người dùng, chúng tôi đã chuẩn bị một tệp CSV, ánh xạ người dùng từ một miền sang một miền mới và sử dụng tập lệnh PowerShell để di chuyển hàng loạt người dùng.

Đây là cấu trúc tệp CSV của tôi:

Tệp CSV chỉ ánh xạ SAMAccountName cũ với tên mới.

Tập lệnh PowerShell để di chuyển người dùng từ miền này sang miền khác:


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)"
             }        
        }
    }
}

Tập lệnh PowerShell này di chuyển người dùng sang miền mới theo chương trình.

Bạn có thể sử dụng lệnh ghép ngắn Move-SPUser trong các tình huống như:
  1. Tài khoản người dùng đã bị xóa và được tạo lại trong AD (với Sid mới)
  2. Tài khoản người dùng đã thay đổi từ Tên miền này sang tên miền khác
  3. ID đăng nhập của tài khoản người dùng đã thay đổi (chẳng hạn như do thay đổi họ).

Di chuyển nhóm quảng cáo trong SharePoint từ miền cũ sang miền mới:

Sử dụng tập lệnh PowerShell này để di chuyển các nhóm bảo mật thư mục hoạt động từ miền này sang miền khác.


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

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

ĐƯỢC RỒI. Bây giờ, Làm cách nào để đưa tất cả người dùng và Nhóm QUẢNG CÁO duy nhất vào tệp CSV ở cấp ứng dụng web hoặc bộ sưu tập trang web? Chà, hãy sử dụng các tập lệnh PowerShell sau:

  • Làm cách nào để xuất tất cả người dùng SharePoint Farm-Web Application-Site Collection-Site sang CSV bằng PowerShell?
  • Tập lệnh PowerShell để tìm tất cả các nhóm Active Directory trong SharePoint

Bài viết liên quan