I just created a connection filter, which excludes disabled users from the UPS. I did not disable the My Site Cleanup Timer Job. I ran a full profile synch after setting the filter.
E-Mails were sent out to a couple of managers stating that the MySite for the now disabled users is queued for deletion in 14 days. So far so good. The problem is that when accessing the site SharePoint just throws an error: "The user could not have been found". In the ULS logs it looks like this:
Exception in LoadRequestedUserProfile: (Microsoft.Office.Server.UserProfiles.UserNotFoundException: Der Benutzer wurde nicht gefunden: Die Profildaten aus der Datenbank konnten nicht geladen werden. at Microsoft.Office.Server.UserProfiles.UserProfile.Load(SqlDataReader myReader, Boolean bFirstRead, Boolean firstReaderIsViewerRights, Boolean includeColleagueRecords, Boolean includeLanguageAndRegionalSettings, Boolean shouldCloseReader) at Microsoft.Office.Server.UserProfiles.UserProfile.RetrieveUser(String strAcct, Guid gAcct, Byte bSid, Nullable`1 recordId, Boolean doNotResolveToMasterAccount, Boolean loadFullProfile, Boolean loadColleagueRecordIds, String strEmail) at Microsoft.Office.Server.UserProfiles.UserProfile..ctor(UserProfileManager objManager, String strAcct, Boolean doNotResolveToMasterAccount, Boolean forceUserIsSelf, Boolean loadFullProfile, Boolean loadColleagueRecordIds, String strEmail) at Microsoft.Office.Server.UserProfiles.UserProfileManager.GetUserProfile(String strAccountName, Boolean doNotResolveToMasterAccount, Boolean loadFullProfile, Boolean loadColleagueRecordIds) at Microsoft.SharePoint.Portal.WebControls.ProfilePropertyLoader.LoadRequestedUserProfile(String& redirectionUrl))
I checked this awesome article by Kirk Evans: Inside the SharePoint 2010 My Site Cleanup Timer Job, but here comes the weird part:
I checked the
MySiteDeletionStatus table in the user profile db: It contains the disabled users I just filtered out. When going to the
UserProfile_Full DB, I expect to get exactly these users with
bDeleted <> 0, but I get none at all. In fact the users I have filtered with the connection filter do not exist in the
UserProfile_Full DB at all, AFAIK they should be there with the
bDeleted flat set to true.
Now, I'm not sure what went wrong or what I did wrong. I could simply remove the filter, run a full synch again and the users would be back - but I have no clue what happens then with the deletion requests and once I want to filter them out again will there be another 14 days? What are the best steps I should do now to fix this for the future as I do want to filter out disabled users and it filtered the correct users.