Durante la migrazione da SharePoint 2007[tag] a [tag=sharepoint-2010]2010 con claims attivato, vanno migrati gli utenti della FBA tramite la procedura descritta in (Migrare gli utenti da FBA a Claims in SharePoint 2010) e gli utenti windows.
Questa procedura sembra avere alcuni problemi quando si è in presenza di qualche migliaio di utenti con il risultato che non tutti gli utenti vengono migrati.

Per risolvere il problema si può utilizzare questo [tag]script[tag] per forzare la migrazione degli utenti mancanti

PowerShell: MigrateUsers_FixForWindowsAuthentication.ps1
#migra a claims tutti gli utenti windows che non sono stati convertiti

$url ="http://sharepoint.sgart.it"

$ErrorActionPreference = "Stop"
Get-Date >> migrate.txt
Get-Date >> errori.txt

Get-SPSite -WebApplication $url -limit all |  foreach {
	Write-Host $_.url -ForegroundColor green

	$users = get-spuser -web $_.url -Limit ALL

	foreach($useriteration in $users)
	{
		$a=@()
		$al = ""
		
		$title = $useriteration.Name
		$userlogin = $useriteration.UserLogin
		Write-Host "$userlogin - $title"  -ForegroundColor DarkMagenta
		if($title -eq "All Authenticated Users") {
			$al = "c:0!.s|windows"
			#if($userlogin -eq "c:0(.s|true")
			#{
			#	continue
			#}
			#$al = "c:0(.s|true"
			Write-Host "Force current $userlogin to $al" -ForegroundColor yellow
		}
		else
		{
			if($useriteration.IsDomainGroup -eq $true -or $userlogin.StartsWith("i:0#") -or $userlogin.StartsWith("c:0"))  {
				continue
			}
			$al = "i:0#.w|" + $useriteration.LoginName
		}
		try{
			Write-Host "try $al"
	    	Move-SPUser -IgnoreSID -Confirm:$false -Identity $useriteration -NewAlias $al 
			# Log
			Write-Host "converted user $al" -ForegroundColor yellow
			$userlogin >> migrate.txt
		} catch {
			Write-Host $userlogin  -ForegroundColor red
			$userlogin >> errori.txt
			continue;
		}

 	}
}
Get-Date >> migrate.txt
Get-Date >> errori.txt
Potrebbe interessarti anche: