I am writing a PowerShell script to re-sync my users to the AD because of a problem i have described [Here][1] and 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?

Thanks in advance,
Itay.


  [1]: http://sharepoint.stackexchange.com/questions/67476/how-do-i-refresh-each-site-collections-permissions