I am writing a PowerShell script to re-sync my users to the AD because of a problem I have described HereHere. From time to time I get a "Set-SPUser : user cannot be found." error but when I call the same command again with the same parameters no error appears and it simply works.
I have no problem just writing this line twice so if the error occurs, it'll simply work the second time it is called or even running the script twice in a row. But I prefer to understand this problem.
The code looks like this:
$allSiteCollections = Get-SPWebApplication [Web-Application-Name]
foreach ($siteCollection in $allSiteCollections.Sites)
{
$currentWeb = Get-SPWeb $siteCollection.url
$members = $currentWeb.SiteGroups["Members"]
foreach ($currentUser in $members.Users)
{
Set-SPUser -Identity $currentUser.UserLogin -Web $currentWeb.url -SyncFromAD -Group "Members"
}
}
This is the line that throws the error:
Set-SPUser -Identity $currentUser.UserLogin -Web $currentWeb.url -SyncFromAD -Group "Members"
If it throws the error and I re-run it, it works perfectly the second time.
Does anybody have any idea why does this happen?