SharePoint 2013 – Make My Sites Public

We encountered an issue on SharePoint 2013 and found something interesting.

There is a “People” page on SharePoint 2013 MySite Host, which replaces the colleagues in SharePoint 2007. It’s auto created by User Profile Sync Service depends on a few things:

  • The users all have managers listed in Active Directory and the managers are being imported.
  • The “<UPA-Name> – User Profile Change Job” timer job is running successfully. — The profile sync imports the users and the fact that they have managers, but it’s this timer job that builds the colleague / following list.  By default this timer job runs hourly.
  • The “Auto-follow people from team” profile policy is enabled (by default it is).

We confirm this on our environment, but users are still not able to see the “Followed People” on others’ profile.

After couple hours of investigation, we found the root cause.

Issue:

We found that the colleagues were in fact getting auto-created successfully.  The problem was that the privacy settings on the profiles did not allow other users to see a given users colleagues.

  • This is controlled by the check box for the “People I follow” property on each profile.
  • We found that all your profiles had this check box unselected by default, along with all of the “Activities I want to share in my newsfeed” check boxes.

Cause:

I found that the default setting per-profile is controlled by the “Make My Sites Public” check box in Central Admin | User Profile Service Application | Set up my sites.

If this is selected, all of the above-mentioned check boxes for each profile will be selected by default.  If it is not selected, they won’t.  Also, “Make My Sites Public” only applies to new profiles.  Changing this setting will not affect existing profiles.

Resolution:

Step 1: Go to Central Admin | User Profile Service Application | Set up my sites.  Select the check box for “Make My Sites Public”.

Note: This will change the default behavior, but it will only take effect for new profiles when they are imported / created.  We need step 2 to update the existing profiles.

Step 2: Run PowerShell script to go through each profile and select the check boxes for “People I follow” and all of the “Activities I want to share in my newsfeed” check boxes.

$site = Get-SPSite http://mysite.com #enter URL of mysite host

$serviceContext = Get-SPServiceContext($site)

$upm = new-object Microsoft.Office.Server.UserProfiles.UserProfileManager($serviceContext)

foreach ($item in ($upm.GetEnumerator()))
{
    $profile = $upm.GetProfile($item.recordid)

    $profile["SPS-PrivacyActivity"].value = 4095

    $profile["SPS-PrivacyPeople"].value = $true

    $profile.commit()
}

Appendix:

Change Newsfeed setting of all User profiles in SharePoint 2010 – Part 1
Change Newsfeed setting of all User profiles in SharePoint 2010 – Part 2

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s