<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Marj Palmer, Premier Field Engineer</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/marj/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/marj/feed.xml</link>
    <description>Sharing nuggets of wisdom about Microsoft products and services gleaned from the field</description>
    <lastBuildDate>Mon, 25 Apr 2016 08:43:40 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>What is Hidden User Information (Userinfo) List in SharePoint 2010/2013 and how to fix when it causes a site collection to show old User metadata properties in People Picker control or in a Person or Group column?</title>
      <link>https://docs.microsoft.com/archive/blogs/marj/what-is-hidden-user-information-userinfo-list-in-sharepoint-20102013-and-how-to-fix-when-it-causes-a-site-collection-to-show-old-user-metadata-properties-in-people-picker-control-or-in-a-person-or</link>
      <pubDate>Mon, 14 Mar 2016 14:49:00 GMT</pubDate>
      <dc:creator><![CDATA[Marj Palmer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/marj/2016/03/14/what-is-hidden-user-information-userinfo-list-in-sharepoint-20102013-and-how-to-fix-when-it-causes-a-site-collection-to-show-old-user-metadata-properties-in-people-picker-control-or-in-a-person-or/</guid>
      <description><![CDATA[What is the User Information List in SharePoint?&nbsp; &nbsp;The User Information List...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size:small;"><strong>What is the User Information List in SharePoint?&nbsp;</strong> </span><br />&nbsp;<br />The User Information List (&ldquo;/_catalogs/users/simple.aspx&rdquo; or &ldquo;_catalogs/users/detail.aspx&rdquo;) is a hidden list in each site collection that is only visible and accessible to Site Collection Administrators.&nbsp; The User Information List stores metadata information about a user. Some metadata examples are Display Name (name), Login Name (samAccountName), Department, Picture, Email, SID (determines authorization rights), etc.<br />&nbsp;<br />The User Information List contains lots more user metadata properties other than Name, About Me, (Job) Title, and Department than you can see in the above Detail view display.&nbsp; You can run the a PowerShell script similar to following example to dump items in the list and get an idea of the other user properties stored in this list.<br />&nbsp;<br /><span style="font-family:courier new,courier;">$site = Get-SPSite &quot;https://intranet.contoso.com/sites/abcsite&quot;</span><br /><span style="font-family:courier new,courier;">$web = $site.OpenWeb() </span><br /><span style="font-family:courier new,courier;">$list = $web.lists[&quot;User Information List&quot;] </span><br /><span style="font-family:courier new,courier;">$list.Items | fl | Out-File F:\DumpUserInfoList.txt</span><br />&nbsp;<br /><span style="font-size:small;"><strong>How does user metadata get added to the hidden User Information List?&nbsp;</strong> </span><br />&nbsp;<br />Whenever you grant a user rights to a Site Collection or when that user creates/updates/deletes any item within a Site Collection, a new item will be created in the User Information List storing some metadata information about that Active Directory (AD) User, if not already there.<br />&nbsp;<br /><span style="font-size:small;"><strong>How does user metadata get subsequently updated in the hidden User Information List?&nbsp;</strong> </span><br />&nbsp;<br />If you change user account properties in Active Directory and then perform a sync/import, it should import and update the changed property values in the corresponding user profile in SharePoint.&nbsp; Also, the sync timer job should push user account updates into the userinfo table in the content database (DB) and into the hidden User Information List in the site collection.&nbsp; I&rsquo;ve tested this in my own lab by changing the Department and Title properties for a user account in AD and then forcing a Full sync in SharePoint, and it appeared to work as expected. The user property changes were replicated from AD into the user profile, the userinfo table, and into the hidden User Information List in the site collection.</p>
<p>Be aware that A SharePoint Farm Administrator can set policies on each user property in a user profile to help govern how the information in that property can be used, and one relevant policy property is <strong>Replicable.&nbsp;&nbsp;</strong>By&nbsp;default&nbsp;when Replicable policy is True,&nbsp;the user profile property&#39;s value can be replicated to user information lists in other site collections when its value changes. For a property to be replicated, its default privacy setting must be set to Everyone and the User can override policy must not be selected.<br />&nbsp;<br />However, things can go awry and sometimes certain users&rsquo; profile metadata in a User Information List for unknown/mysterious reasons just ceases to get replicated updates from a profile sync run.<br />&nbsp;<br />Where can things go wrong?&nbsp; SharePoint maintains a mapping between the Profile DB and content DB userinfo table, based on &ldquo;[Profile DB].[dbo].[UserProfile_Full].SID&ldquo; column and &ldquo;[WSS_Content].[dbo].[UserInfo].tp_systemID&rdquo; column.&nbsp; This mapping is leveraged when SharePoint synchronizes the Profile Database and the Content Databases.&nbsp; Linkages can apparently get broken here sometimes and impact user metadata replication.&nbsp; But I won&rsquo;t delve into this less common topic, and instead will cover the most typical scenario.<br />&nbsp;<br /><span style="font-size:small;"><strong>How do I fix user metadata in the hidden User Information List when things go awry?&nbsp;</strong> </span><br />&nbsp;<br /><strong><em>Set-SPUser -SyncFromAD to fix Name (DisplayName) and E-Mail:</em></strong><br />&nbsp;<br />If you want to manually force update existing user metadata in a User Information List, You can use &quot;Set-SPUser&quot; cmdlet at the site collection scope with the SyncFromAD parameter.&nbsp; The SyncFromAD parameter specifies that user information will be synchronized (immediately, in my observation) from the user directory store. Be aware that this cmdlet only updates the Name/DisplayName and E-Mail fields.&nbsp; It doesn&rsquo;t touch the Title or Department or other fields. Example PowerShell for a SharePoint 2013 claims-enabled web site&hellip;<br />&nbsp;<br /><span style="font-family:courier new,courier;">$login= &quot;i:0#.w|dev\TestUser1&quot;</span><br /><span style="font-family:courier new,courier;">$site= &quot;https://intranet.contoso.com/sites/abcsite&quot; </span><br /><span style="font-family:courier new,courier;">Set-SPUser -Identity $login -web $site -SyncFromAD</span><br />&nbsp;<br /><strong><em>Remove-SPUser and manually re-add to fix Title, Department, and other metadata:</em></strong><br />&nbsp;<br />If there are only few user accounts having inconsistent metadata in the site collection, the easiest fix might be to run the Remove-SPUser cmdlet to remove each user from the site collection (which removes them from User Information List). Then via the SharePoint UI, manually grant the user access again within the site collection (or use New-SPUser cmdlet) to force SharePoint to re-add the user into the User Information List.&nbsp; From my observation, it appears that SharePoint will refresh the user metadata properties from the user profile after the next profile synchronization runs (you may have to wait for an hour for the sync job to run successfully).&nbsp; Example PowerShell for a SharePoint 2013 claims-enabled web site...<br />&nbsp;<br /><span style="font-family:courier new,courier;">$login= &quot;i:0#.w|dev\TestUser1&quot;</span><br /><span style="font-family:courier new,courier;">$site= &quot;https://intranet.contoso.com/sites/abcsite&quot; &nbsp;</span><br /><span style="font-family:courier new,courier;">Remove-SPUser -Identity $login -web $site</span><br />&nbsp;<br /><strong>Important:&nbsp;</strong>&nbsp; If you plan to remove the user from the site collection, all the user&#39;s permissions to this Site Collection are removed. Before you remove the user&#39;s permissions and re-add them, make sure you note the user&#39;s permissions.&nbsp; To do this from the SharePoint site collection, you can go to Site Actions&gt; Site Settings &gt; Users and Permissions &gt; Site Permissions &gt; Check Permissions.<br />&nbsp;<br /><strong><em>Manually delete user from All People group and re-add to fix Title, Department, and other metadata:</em></strong><br />&nbsp;<br />Alternatively, you could delete a user from a site collection by deleting them from the All People group using the SharePoint UI.&nbsp; If you remove the user from this group, this also removes the user from the userInfo table in the Microsoft SQL Server database. I believe this is some type of soft delete, where a Deleted property is turned on.&nbsp; When you re-add the user, the user&#39;s information is updated in this table.&nbsp; From my testing it appears that SharePoint will refresh the deleted/re-added user&rsquo;s metadata properties in the site collection from the user profile after the next profile synchronization runs.<br />&nbsp;<br /><strong>Important:</strong>&nbsp;&nbsp; If you plan to delete the user from the All People group, all the user&#39;s permissions to this Site Collection are removed. Before you remove the user&#39;s permissions and re-add them, make sure you note the user&#39;s permissions.&nbsp; To do this from the SharePoint site collection, you can go to Site Actions&gt; Site Settings &gt; Users and Permissions &gt; Site Permissions &gt; Check Permissions.<br />&nbsp;<br /><span style="font-size:small;"><strong>How do I access the All People group/page in a SharePoint 2013/2010 site collection?&nbsp;</strong> </span><br />&nbsp;<br />In Microsoft Office SharePoint 2007, you could remove the user from the All People group and re-add them. This option is no longer available in SharePoint 2010/2013. SharePoint 2010/2013 removed the page from navigation, but you can still access the All People page by appending the following to the root URL of the site collection.<br />&nbsp;<br />SharePoint 2013<br /><span style="font-family:courier new,courier;">/_layouts/15/people.aspx?MembershipGroupId=0</span><br />&nbsp;<br />SharePoint 2010<br /><span style="font-family:courier new,courier;">/_layouts/people.aspx?MembershipGroupId=0&amp;FilterField1=ContentType&amp;FilterValue1=Person</span><br />&nbsp;<br />&nbsp;<br /><span style="font-size:small;"><strong>What is the People Picker control in SharePoint?&nbsp;</strong> </span><br />&nbsp;<br />The People Picker control is used to search/find and select groups (as well as people and claims).&nbsp; Where does the picker control pull its display data from?&nbsp; SharePoint first checks if the user exists in the site collection (hidden User Information List), if it does not then it retrieves the user info from Active Directory and adds the user into the site collection.&nbsp; People picker behavior is affected by the User Profile to SharePoint synchronization Job; however, it can be influenced by many other factors.&nbsp; <br />&nbsp;<br /><span style="font-size:small;"><strong>How does the Person or Group column type work?</strong></span><br />&nbsp;<br />The Person or Group column type in a list/library allows you to select people based on User ID and Login Name using a picker control.&nbsp; The People Picker control is used to search/find and select groups (as well as people and claims).&nbsp; Where does the picker control pull its display data from?&nbsp; The UserID relates to the ID of the user within the site collection. However chances are that not all users are currently members of the site collection. To address this, SharePoint first checks if the user exists in the site collection, if it does not then it retrieves the user info from Active Directory and adds the user into the site collection.&nbsp; People picker behavior is affected by the User Profile to SharePoint synchronization Job; however, it can be influenced by many other factors.&nbsp;&nbsp;The Show Field value for a Person or Group column type is obtained from the hidden User Information List in the site collection.</p>]]></content:encoded>
    </item>
    <item>
      <title>How Does Renaming an Active Directory Group Impact User Access, People Picker, and Audience Targeting in SharePoint 2010?</title>
      <link>https://docs.microsoft.com/archive/blogs/marj/how-does-renaming-an-active-directory-group-impact-user-access-people-picker-and-audience-targeting-in-sharepoint-2010</link>
      <pubDate>Fri, 20 Nov 2015 02:58:00 GMT</pubDate>
      <dc:creator><![CDATA[Marj Palmer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/marj/2015/11/20/how-does-renaming-an-active-directory-group-impact-user-access-people-picker-and-audience-targeting-in-sharepoint-2010/</guid>
      <description><![CDATA[I&#39;ve done some research and testing to determine how rename of a Group in Active Directory...]]></description>
      <content:encoded><![CDATA[<p>I&#39;ve done some research and testing to determine how rename of a Group in Active Directory impacts SharePoint 2010, and my best understanding provided below.&nbsp; I believe much of this would be applicable for SharePoint 2013, too.</p>
<p><span style="font-size:medium;"><strong>About Active Directory (AD) Groups</strong></span></p>
<p>Groups are used to collect user accounts, computer accounts, and other groups into manageable units. Working with groups instead of with individual users helps simplify network maintenance and administration.</p>
<p>There are two types of groups in Active Directory:</p>
<ul>
<li><strong>Distribution groups</strong>: Used to create email distribution lists (DLs).&nbsp; Distribution groups are not security enabled, which means that they cannot be listed in discretionary access control lists (DACLs).&nbsp; Distribution groups cannot be used to secure access to SharePoint.</li>
<li><strong>Security groups:</strong> Used to assign permissions to shared resources.&nbsp;&nbsp; A security group can also be used as an e-mail entity.</li>
</ul>
<p>From&hellip;<a title="Overview of security groups in SharePoint 2013" href="https://technet.microsoft.com/en-us/library/cc261972.aspx" target="_blank">Overview of security groups in SharePoint 2013</a></p>
<p><span style="font-size:medium;"><strong>What is Meant by &quot;Rename&quot; an Active Directory Group?</strong></span></p>
<p>AD groups have many &quot;name&quot; attributes.&nbsp; A Distinguished Name (DN) is used to uniquely name an Active Directory Object. All objects can be referenced using a Distinguished Name. A DN has following components:</p>
<ul>
<li>DC - Domain Component</li>
<li>O - Organization</li>
<li>OU - Organizational Unit</li>
<li>CN - Common Name</li>
</ul>
<p>Changing the CN (common name) of a group in AD effectively renames it. That same name change also appears to be reflected in both the &ldquo;name&rdquo; and &ldquo;samAccountName&rdquo; properties of the AD group.&nbsp; The membership property (i.e., user account members) of the group is unaffected by rename.&nbsp; By renaming an AD group you are actually giving it a new ADsPath, and effectively changing the Distinguished Name (DN).</p>
<p>In addition to Common Name (CN), an AD group object will also have additional &ldquo;name&rdquo; properties which typically reflect the same value as CN after a rename:</p>
<ul>
<li>name&nbsp;&nbsp; (a.k.a., Display Name)</li>
<li>samAccountName&nbsp;&nbsp;&nbsp; (a.k.a., login name)</li>
</ul>
<p><span style="font-size:medium;"><strong>How Are AD Security Groups Used Within SharePoint 2010?</strong></span></p>
<ul>
<li><strong>People Picker:</strong>&nbsp; The People Picker control is used to search/find and select groups (as well as people and claims) when a site, list, or library owner assigns permissions in SharePoint</li>
<li><strong>Authorization/Permissions</strong>:&nbsp; You can use security groups to control permissions for your site by adding AD security groups to SharePoint groups and granting permissions to the SharePoint groups.&nbsp; An AD security group can be listed in the DACLs for securable objects within a SharePoint site.</li>
<li><strong>Email Entity:</strong>&nbsp; An AD security group (or a distribution list) can be used as an email entity.</li>
<li><strong>Group Profile Synchronization:&nbsp;</strong>By default, SharePoint&rsquo;s User Profile Services Application synchronizes groups (security groups &amp; distribution lists) when it synchronizes user profiles.
<ul>
<li>SharePoint does not import AD security groups. It imports AD group memberships only. This is by Design.&nbsp;</li>
<li>Imported groups are only used to create audiences and to display which memberships a visitor has in common with the person whose My Site the person is visiting.</li>
<li>SharePoint&rsquo;s sync database uses the DN property (Distinguished Name) as the unique key for finding objects when storing them in its database. It doesn&rsquo;t update/change that key subsequently even when the values that make up that key originally change (it does update their &ldquo;values&rdquo; etc.).</li>
</ul>
</li>
</ul>
<p><span style="font-size:small;"><strong>&nbsp;<span style="font-size:medium;">What is the User Information List in SharePoint?</span></strong></span><br /><br />The User Information List (&ldquo;/_catalogs/users/simple.aspx&rdquo; or &ldquo;_catalogs/users/detail.aspx&rdquo;) is a hidden list in each site collection that is only visible and accessible to Site Collection Administrators.&nbsp; The User Information List stores metadata information about a user. Some metadata examples are Display Name (name), Login Name (samAccountName), Picture, Email, SID (determines authorization rights) etc. <br /><br />When an AD Security Group is granted access to a site, a new item will be created in the User Information List storing some metadata information about that AD group.</p>
<p><span style="font-size:medium;"><strong>How Does AD Security Group Rename Affect People Picker &amp; Permissions in SharePoint 2010?</strong></span></p>
<p>LAB TEST SCENARIO:&nbsp; Rename AD Security group &ldquo;MarjGroupABC&rdquo; to &ldquo;MarjGroupDEF&rdquo;<br /><br />1) Created a new AD security group in AD directory service.<br /><br /><strong>cn:</strong>&nbsp; MarjGroupABC<br /><strong>distinguishedName:</strong>&nbsp; CN=MarjGroupABC,CN=Users,DC=dev,DC=sp14a,DC=mapalm,DC=com<br /><strong>name:</strong>&nbsp; MarjGroupABC<br /><strong>samAccountName:&nbsp;</strong> MarjGroupABC<br /><br />2) Using People Picker, searched for &ldquo;MarjGroup&rdquo; and see the &ldquo;dev\MarjGroupABC&rdquo; AD security group.&nbsp; Selected and added the AD Security group &ldquo;dev\MarjGroupABC&rdquo; to the &ldquo;Members&rdquo; SharePoint group in root site of a site collection.<br /><br />3) Existing domain user account &ldquo;dev\TestUser1&rdquo; has not been granted access to that root site of the site collection.&nbsp; Therefore, User gets an Access Denied when trying to login to site.<br /><br />4) In Active Directory, added existing domain user account &ldquo;dev\TestUser1&rdquo; to membership of &ldquo;dev\MarjGroupABC&rdquo;<br /><br />5) Now in SharePoint, that user &ldquo;dev/TestUser1&rdquo; is able to successfully login to that root site of site collection.&nbsp; User&rsquo;s membership in AD group &ldquo;dev\MarjGroupABC&rdquo; caused it to inherit Contribute permissions for the site because the AD group was mapped to the Members group in SharePoint, <br /><br />6) The &ldquo;dev\MarjGroupABC&rdquo; group appears as an item in the hidden User Information List of the site collection (/_catalogs/users/simple.aspx).<br /><br />7) Using the Active Directory Users and Computers application, right-click the security group &ldquo;MarjGroupABC&rdquo; and select the Rename action.&nbsp; Change the group name to &ldquo;MarjGroupDEF&rdquo;. After this change the security group&rsquo;s &ldquo;name&rdquo; properties reflect the following values<br /><br /><strong>cn:</strong>&nbsp; MarjGroupDEF<br /><strong>distinguishedName:&nbsp;</strong> CN=MarjGroupDEF,CN=Users,DC=dev,DC=sp14a,DC=mapalm,DC=com<br /><strong>name:&nbsp;</strong> MarjGroupDEF<br /><strong>samAccountName:</strong>&nbsp; MarjGroupDEF<br /><br />8)&nbsp; In the User Information List of the site collection (/_catalogs/users/simple.aspx) in SharePoint, the AD group still appears with the old name &ldquo;dev\MarjGroupABC&rdquo;.<br /><br />9)&nbsp; In the SharePoint group &ldquo;Members&rdquo; the AD group still appears with the old name &ldquo;dev\MarjGroupABC&rdquo;.<br /><br />10)&nbsp; Can the user &ldquo;dev\TestUser1&rdquo; still successfully login to the SharePoint site, even though the AD group was renamed in Active Directory?&nbsp; YES!&nbsp; The SharePoint permissions authorization for the user apparently were unaffected by the rename of the AD group.<br /><br />11)&nbsp; Looking at the User Information List of the site collection (/_catalogs/users/simple.aspx) in SharePoint again, the AD group still appears with the old name &ldquo;dev\MarjGroupABC&rdquo;.&nbsp; The new &ldquo;dev\MarjGroupDEF&rdquo; name does NOT appear in the list.<br /><br />12) Using People Picker in SharePoint, search for &ldquo;MarjGroup&rdquo; and now see both old and new AD security group names &ldquo;dev\MarjGroupABC&rdquo; and &ldquo;dev\MarjGroupDEF&rdquo;.<br /><br />SHAREPOINT ISSUES OBSERVED AFTER AD GROUP RENAME:<br /><br />1) ISSUE: Both the old and the new AD group names will show in SharePoint People Picker. &nbsp;<br />2) ISSUE: Only the old AD group name displays as item in the hidden User Information List in SharePoint.&nbsp; Reason is the Name (Display Name) still reflects old AD group name.&nbsp; However, if you view the associated Login Name property for that item it does reflect the new AD group name.<br />3) ISSUE: Only the old AD group name displays as mapped member of SharePoint group.<br /><br />Note:&nbsp; SharePoint permissions authorization for the user appear to be unaffected by the rename of the AD group.<br /><br />DESIRED OUTCOME:<br /><br />1) Only the new AD group name should show in SharePoint People Picker. &nbsp;<br />2) The new AD group name should display for the item in the hidden User Information List in SharePoint. <br />3) The new AD group name should display for the mapped member in the SharePoint group.<br /><br />POSSIBLE WORKAROUND FOR DESIRED OUTCOME?<br /><br />From my research and testing in my own SharePoint 2010 lab environment, the following steps seem to fix SharePoint to have the desired outcome. I would expect same outcome for SharePoint 2013.&nbsp; If you plan to use this possible fix, you should fully test it in your own SharePoint test environment to ensure it fully works with no unexpected side-effects and meets your expectations.<br /><br />Step 1) If the CN name is changed for an AD security group, then you would have to run the stsadm &ndash;o migrategroup command in SharePoint.&nbsp; This seems to fix People Picker issue and fixes Login Name property.&nbsp; For example,<br /><br /><span style="font-family:courier new,courier;">stsadm &ndash;o migrategroup &ndash;oldlogin &quot;dev\MarjGroupABC&quot; &ndash;newlogin &quot;dev\MarjGroupDEF&quot;</span><br /><br />Note: Above command seems to work OK, even though it displays an error &ldquo;value cannot be null parameter name: userprofileapplicationproxy.&rdquo;&nbsp; Not sure why error displays???<br /><br />Step 2) Write and execute a PowerShell script to change the &ldquo;Display Name&rdquo; on all SharePoint site collections as per new display name (name) attribute in AD<br /><br /><span style="font-family:courier new,courier;">$login= &quot;dev\MarjGroupDEF&quot; # fill with correct new value</span><br /><span style="font-family:courier new,courier;">$title = &quot;dev\MarjGroupDEF&quot; # fill with correct new value</span><br /><span style="font-family:courier new,courier;">Get-SPSite -Limit all | % {$domainGroup = $_.OpenWeb().SiteUsers[$login]; if ($domainGroup -ne $null) {$domainGroup.DisplayName=$title; $domainGroup.Update()}}</span></p>
<p><span style="font-size:medium;"><strong>How Does AD Group Rename Affect Audience Targeting in SharePoint 2010?</strong></span><br /><br />The impact of renaming a group (either a Distribution Group or an email-enabled Security Group) in Active Directory of will depend upon how the group is being used within SharePoint.<br /><br />SCENARIO #1:&nbsp; Group used in an audience definition within SharePoint Central Administration<br /><br />&bull; Issue:&nbsp; Once an audience has been defined, it must be compiled on a regular basis because the underlying user profile properties and membership in directory services and groups can frequently change. <br /><br />&bull; Fix: An administrator schedules the timer job that controls when audiences are compiled. <br /><br />SCENARIO #2: When you target a web part or a list item, you don&rsquo;t *have* to use an audience, you can select an AD group directly. &nbsp;<br /><br />&bull; Issue:&nbsp; Webparts/documents that had audience targets for that renamed group will become broken (e.g., group name underscored with red squiggly line).<br /><br />&bull; Fix: You will need to manually ( or programmatically through PowerShell or standalone application ) identify and re-assign the audience to the webpart/document in the sites.</p>
<p><span style="font-size:medium;"><strong>About Audiences in SharePoint</strong></span><br /><br />Audiences can be defined by one or a combination of the following items:</p>
<ul>
<li>Membership in a distribution list</li>
<li>Membership in a Windows security group</li>
<li>Location in organizational reporting structure</li>
<li>By public properties in user profiles</li>
</ul>
<p>Audiences Defined by Windows security groups and distribution lists:&nbsp;&nbsp;</p>
<ul>
<li>The Windows security groups that are available when you are creating audiences are those that are imported when user profiles synchronized with the User Profile service application.</li>
<li>The distribution lists that are available when you are creating audiences are those that are imported when user profiles are imported into the User Profile service application.</li>
</ul>
<p>Compiling Audiences<br /><br />Once an audience has been defined, it must be compiled on a regular basis because the underlying user profile properties and membership in directory services and groups can frequently change. An administrator schedules the timer job that controls when audiences are compiled.<br /><br /></p>]]></content:encoded>
    </item>
    <item>
      <title>Monitoring SharePoint Distributed Cache Service for Scale-Up (memory) or Scale-Out (add cache host)</title>
      <link>https://docs.microsoft.com/archive/blogs/marj/monitoring-sharepoint-distributed-cache-service-for-scale-up-memory-or-scale-out-add-cache-host</link>
      <pubDate>Wed, 07 Oct 2015 20:12:00 GMT</pubDate>
      <dc:creator><![CDATA[Marj Palmer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/marj/2015/10/07/monitoring-sharepoint-distributed-cache-service-for-scale-up-memory-or-scale-out-add-cache-host/</guid>
      <description><![CDATA[What are recommended procedures for monitoring the Distributed Cache Service on SharePoint 2013...]]></description>
      <content:encoded><![CDATA[<p></p>
<p>What are recommended procedures for monitoring the Distributed Cache Service on SharePoint 2013 for scale-up (memory) or scale-out (add cache host)&nbsp;to handle increasing load? &nbsp;I&rsquo;ve done some initial research, and learned this isn&rsquo;t an exact science.&nbsp; I&rsquo;ve provided some initial information I collected in this post.</p>
<p>The Distributed Cache Service provides in-memory caching services to several features in SharePoint Server 2013, and should be monitored for memory management, resiliency, and availability issues.&nbsp; So, you might want to start by getting a pattern of usage (non-peak versus peak).&nbsp; Note: I believe &ldquo;load&rdquo; as RPS (requests per second) would be driven by total users and number of concurrent users.&nbsp; In a nutshell, the goal of the AppFabric service is to maintain the memory a cache host uses to store cached items between the low watermark and high watermark configured for that cache host.</p>
<p></p>
<p>To view common configuration details for individual caches, run the following command:</p>
<p></p>
<p><span style="font-family:courier new,courier;">Use-CacheCluster</span><br /><span style="font-family:courier new,courier;">Get-AFCache | % {Get-AFCacheConfiguration -CacheName $_.CacheName}</span></p>
<p></p>
<p>You may want to know how many items are stored and how much memory is in use for individual caches. For specific stats about each cache, run this command:</p>
<p></p>
<p><span style="font-family:courier new,courier;">Use-CacheCluster</span><br /><span style="font-family:courier new,courier;">Get-AFCache | % {</span><br /><span style="font-family:courier new,courier;">&nbsp;&nbsp;&nbsp; $CacheName = $_.CacheName</span><br /><span style="font-family:courier new,courier;">&nbsp;&nbsp;&nbsp; Get-AFCacheStatistics -CacheName $CacheName | Add-Member -MemberType NoteProperty -Name &#39;CacheName&#39; -Value $CacheName -PassThru</span><br /><span style="font-family:courier new,courier;">}</span></p>
<p></p>
<p>You could pipe the output from this command to Export-Csv to create a short report. Typical output is shown here:</p>
<p></p>
<p><span style="font-family:courier new,courier;">CacheName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : DistributedLogonTokenCache_f3bd4763-f482-4bb8-a5a5-f40806460bdd</span><br /><span style="font-family:courier new,courier;">Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 36864</span><br /><span style="font-family:courier new,courier;">ItemCount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 6</span><br /><span style="font-family:courier new,courier;">RegionCount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 6</span><br /><span style="font-family:courier new,courier;">RequestCount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 55</span><br /><span style="font-family:courier new,courier;">ReadRequestCount&nbsp; : 26</span><br /><span style="font-family:courier new,courier;">WriteRequestCount : 14</span><br /><span style="font-family:courier new,courier;">MissCount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 32</span><br /><span style="font-family:courier new,courier;">IncomingBandwidth : 96924</span><br /><span style="font-family:courier new,courier;">OutgoingBandwidth : 880</span></p>
<p></p>
<p><br /><strong>Cache Statistics</strong></p>
<p></p>
<p>Since the current amount of memory in use by the cache is so important, you&rsquo;ll be interested in the commands which return a snapshot of current usage.&nbsp; You have a couple options for retrieving information about all servers in the cluster, one using the Get-AFCacheHostStatus to iterate through all hosts, and one by finding all configured service instances in SharePoint. They are as follows:</p>
<p></p>
<p><span style="font-family:courier new,courier;">Get-AFCacheHostStatus | % {</span><br /><span style="font-family:courier new,courier;">&nbsp;&nbsp;&nbsp; $ServerName = $_.HostName</span><br /><span style="font-family:courier new,courier;">&nbsp;&nbsp;&nbsp; Get-AFCacheStatistics -ComputerName $_.HostName -CachePort $_.PortNo | Add-Member -MemberType NoteProperty -Name &#39;ServerName&#39; -Value $ServerName -PassThru</span><br /><span style="font-family:courier new,courier;">} | Format-List -Property *</span></p>
<p></p>
<p><strong>**OR**</strong></p>
<p></p>
<p><span style="font-family:courier new,courier;">$SPDCServers = Get-SPServer | ? {($_.ServiceInstances | % TypeName) -contains &#39;Distributed Cache&#39;} | % Address</span><br /><span style="font-family:courier new,courier;">$SPDCServers | % {</span><br /><span style="font-family:courier new,courier;">&nbsp;&nbsp;&nbsp; $ServerName = $_</span><br /><span style="font-family:courier new,courier;">&nbsp;&nbsp;&nbsp; Get-AFCacheStatistics -ComputerName $_ -CachePort 22233 | Add-Member -MemberType NoteProperty -Name &#39;ServerName&#39; -Value $ServerName -PassThru</span><br /><span style="font-family:courier new,courier;">}</span></p>
<p></p>
<p>And typical output looks like this:</p>
<p></p>
<p><span style="font-family:courier new,courier;">ServerName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : SERVER09</span><br /><span style="font-family:courier new,courier;">Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 51200</span><br /><span style="font-family:courier new,courier;">ItemCount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 18</span><br /><span style="font-family:courier new,courier;">RegionCount&nbsp;&nbsp;&nbsp;&nbsp; : 13</span><br /><span style="font-family:courier new,courier;">NamedCacheCount : 10</span><br /><span style="font-family:courier new,courier;">RequestCount&nbsp;&nbsp;&nbsp; : 393</span><br /><span style="font-family:courier new,courier;">MissCount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 66</span></p>
<p></p>
<p><br />From&hellip;<br /><a title="AppFabric Caching (and SharePoint): Configuration and Deployment (Part 2)" href="https://blogs.msdn.com/b/besidethepoint/archive/2013/03/27/appfabric-caching-and-sharepoint-2.aspx" target="_blank">AppFabric Caching (and SharePoint): Configuration and Deployment (Part 2)</a></p>
<p></p>
<p><br /><strong>The Distributed Cache can be monitored using below performance counters in Perfmon:</strong></p>
<p></p>
<p>SharePoint Distributed Cache Counters<br />&bull;&nbsp;Cache Data Transferred Per Sec<br />&bull;&nbsp;Cache Hit Count<br />&bull;&nbsp;Cache Hit Ratio<br />&bull;&nbsp;Cache Miss Count<br />&bull;&nbsp;Cache Read Requests per sec<br />&bull;&nbsp;Cache Write Requests per sec<br />&bull;&nbsp;Total Cache Read Requests<br />&bull;&nbsp;Total Cache Write Requests</p>
<p></p>
<p>Additionally, there are three groups of &lsquo;AppFabric&rsquo; counters available. Note there are multiple instances &ndash; indicating the different caches present in the Distributed Cache.</p>
<p></p>
<p>&bull;&nbsp;AppFabric Caching:Cache<br />&bull;&nbsp;AppFabric Caching:Host<br />&bull;&nbsp;AppFabric Caching:Secondary Host</p>
<p></p>
<p><br />Note: If &ldquo;Cache Miss Count&rdquo; should to rise significantly higher than expected (based on usage patterns), I think that might warrant some deeper investigation.</p>
<p></p>
<p>From&hellip;<br /><a title="SharePoint 2013 Distributed Cache service" href="https://www.jeremytaylor.net/2013/04/22/sharepoint-2013-distrbuted-cache-service/" target="_blank">SharePoint 2013 Distributed Cache service</a></p>
<p></p>
<p><br /><strong>General capacity planning and tuning guidance for Distributed Cache Service:</strong></p>
<p></p>
<p><a title="Plan for feeds and the Distributed Cache service in SharePoint Server 2013" href="https://technet.microsoft.com/library/jj219572(office.15).aspx" target="_blank">Plan for feeds and the Distributed Cache service in SharePoint Server 2013</a><br />See topics:<br />&bull;&nbsp;Capacity planning for the Distributed Cache service<br />&bull;&nbsp;Memory Allocation</p>
<p></p>
<p><a title="Manage the Distributed Cache service in SharePoint Server 2013" href="https://technet.microsoft.com/en-us/library/jj219613.aspx" target="_blank">Manage the Distributed Cache service in SharePoint Server 2013</a><br />See topic:<br />&bull;&nbsp;Fine-tune the Distributed Cache service by using a Windows PowerShell script</p>
<p></p>
<p><br /><strong>How to check the existing memory allocation for the Distributed Cache service on a server:</strong></p>
<p></p>
<p>Run the following command at the SharePoint Management Shell command prompt:</p>
<p></p>
<p><span style="font-family:courier new,courier;">Use-CacheCluster</span><br /><span style="font-family:courier new,courier;">Get-AFCacheHostConfiguration -ComputerName ComputerName -CachePort &quot;22233&quot;</span></p>
<p></p>
<p>Where:<br />&bull;&nbsp;<em>ComputerName</em> is the computer name of the server that you are running the SharePoint Management Shell cmdlet on.</p>
<p></p>
<p><br /><strong>How to modify the memory allocation of the Distributed Cache:</strong></p>
<p></p>
<p><span style="font-family:courier new,courier;">Update-SPDistributedCacheSize -CacheSizeInMB CacheSize</span></p>
<p></p>
<p>Notes: <br />&bull;&nbsp;The Distributed Cache service, cache size should not exceed 16 GB<br />&bull;&nbsp;When more than one server is used for Distributed Cache in a cluster, all the servers must have the same cache size configured.</p>
<p></p>
<p><br /><strong>Warning About Using Cmdlets Add/Remove-SPDistributedCacheServiceInstance:</strong></p>
<p></p>
<p>If you uninstall and reinstall the Distributed Cache Service Instance on a server (i.e. by running Remove-SPDistributedCacheServiceInstance and then Add-SPDistributedCacheServiceInstance) the cache host size will be reset to the default (5% of physical memory at time of installation). If removing and adding the cache service instance is part of your maintenance cycles, make sure to also modify the cache size afterwards if needed.</p>
<p></p>
<p></p>
<p></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Reconciling SharePoint 2013 Content Database Size to Total Size of Site Collections</title>
      <link>https://docs.microsoft.com/archive/blogs/marj/reconciling-sharepoint-2013-content-database-size-to-total-size-of-site-collections</link>
      <pubDate>Wed, 12 Aug 2015 11:50:00 GMT</pubDate>
      <dc:creator><![CDATA[Marj Palmer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/marj/2015/08/12/reconciling-sharepoint-2013-content-database-size-to-total-size-of-site-collections/</guid>
      <description><![CDATA[Have you ever looked&nbsp;at the total physical size of content database (DB)&nbsp;files in SQL...]]></description>
      <content:encoded><![CDATA[<p>Have you ever looked&nbsp;at the total physical size of content database (DB)&nbsp;files in SQL Server and&nbsp;wondered why&nbsp;it doesn&#39;t reconcile&nbsp;with the total size of site collections contained in the database?&nbsp; What you&#39;ll probably observe is the total size of all site collections in a content DB&nbsp;will be considerably less that the database size property you see in SQL Server Management Studio.&nbsp; This blog post with explore some reasons why.</p>
<p>As an example, I took a quick look in my own SharePoint 2013 lab environment at a web application which had 1 content DB. Following is what I observed for SQL vs. SharePoint size proportion...</p>
<p style="margin-left:30px;">Web application:&nbsp; https://intranet.contoso.com<br />Content database:&nbsp; WSS_content_intranet</p>
<p style="margin-left:30px;">Per SharePoint<br />&bull; Site Collection Count : 19<br />&bull; Sum of Size in MB&nbsp;&nbsp;&nbsp;&nbsp; : 110.757159233093</p>
<p style="margin-left:30px;">Per SQL Server Management Studio<br />Database: WSS_Content_Intranet<br />Properties:<br />&nbsp; &bull; Database Size:&nbsp; 206.06 MB<br />&nbsp; &bull; Database Space Available:&nbsp; 1.09 MB</p>
<p style="margin-left:30px;">C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\WSS_Content_Intranet.mdf<br />154 MB</p>
<p style="margin-left:30px;">C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\WSS_Content_Intranet_log.ldf<br />52.MB</p>
<p></p>
<p>Total size of all site collections was about &frac12; of the database size property in SQL Server Management Studio.&nbsp; What might explain this?</p>
<p>The SQL database size is the physical size of the database files (mdf and ldf). It is queried by the sp_helpdb stored procedure. This size includes all SQL data related to the database: transactions logs, indexes, SQL database schema, permissions and tables metadata. Depending on SQL administration it may include pre-allocated space for future growth - around 10-25%.</p>
<p>For SQL Server, actual content size can fluctuate up and down over time. When has backup happened? That will commit all transactions to the DB and the size will become smaller.&nbsp; The mdf file size can be smaller than the DB size in SQL Management studio, that is because Management studio shows the current database size including uncommitted transactions in the transaction log(ldf).</p>
<p>Why is SharePoint&rsquo;s report of current site usage so much less that what shows in SQL content database?&nbsp; There is no actual direct correlation between the database size and content size. One reason is SharePoint will display the size of the content stored within the Content Database (caveat: also&nbsp;read below referenced Support&nbsp;article&nbsp;&quot;Total Size from Storage Metrics shows full size file version in SharePoint 2013&quot;), but it won&#39;t include the size of the whitespace, that is the disk space currently allocated to the database files to permit more content to be uploaded.&nbsp; As users add content to their SharePoint sites, the content database will naturally grow.&nbsp; To have a content database size that is larger than the content is usually a good thing because it gives SharePoint room to grow without the performance hit of having to auto grow the DB at every write/save.</p>
<p>If the database size relation to the content size gets unreasonably big then a shrink might be motivated, but do proper research on the effects first.&nbsp; Shrinking database files should only be done in very specific circumstances (NEVER automatically or as part of a maintenance plan) because they cause horrible fragmentation of your databases. A good candidate is the situation where you just moved a large site collection to another content database and you leave your original database with 80% of unused space for example. Database files grow, that&#39;s what they do.</p>
<p>If a user uploads ten 1 MB documents to a site, you&rsquo;d see the site content in SharePoint&rsquo;s report increase by about 10 MB. At the same time, the SQL database size either may not change in case space has already been allocated for this data; or the change will be greater as SQL needs to keep auxiliary structures such as transactions logs, indexes, document properties in order to store these documents. So, there will be storage overhead added by SharePoint and possibly by SQL auxiliary data.</p>
<p>The site collection size SharePoint reports does not include SharePoint permissions structures, audit and events data.&nbsp; It is comprised of the total size of the following data:</p>
<ul>
<li>documents</li>
<li>doc versions</li>
<li>list items</li>
<li>account personalization info</li>
<li>webparts</li>
<li>document metadata</li>
<li>Recycle bin (1st stage end-user recycle bin)</li>
</ul>
<p>How is the SharePoint&rsquo;s storage usage calculation for a site collection done?&nbsp; For inquiring minds who want to know&hellip; SharePoint scans AllDocs, AllFileFragments, AllWebs, AllLists, AllDocVersions, AllUserData, AllWebParts, Personalization, ContentTypes, and RecycleBin for the total size. Please note, the DocStreams table is not considered in this algorithm. There&rsquo;s a gap between the AllDocs and DocStreams for the same file. The actual file in binary form is stored in DocStreams. AllDocs table stores the meta info. Thus, the DocStreams table will be huge if there&rsquo;re lots of files stored in the site. That being said, now the question is why DocStreams is not considered in the calculation algorithm.&nbsp; The reason is a) this is an auxiliary table that only contains binary information; b) the information in this table does not actually reflect the file size, but size of the binary length. Therefore, it is not considered.&nbsp; As a result, the content size stored in the database for a site collection takes more space than reflected in SharePoint&rsquo;s storage usage calculation.</p>
<p>You might wonder since the calculated site collection size and actual content size are not aligned, what&rsquo;s the point? This number will be the same once the site collection is backed up to disk (using stsadm -o backup or backup-spsite). If you&rsquo;re interested, the size reported in the SharePoint UI is from SPSite.UsageInfo.Storage (<a title="https://msdn.microsoft.com/EN-US/library/microsoft.sharepoint.spsite.usageinfo.storage" href="https://msdn.microsoft.com/EN-US/library/microsoft.sharepoint.spsite.usageinfo.storage" target="_blank">https://msdn.microsoft.com/EN-US/library/microsoft.sharepoint.spsite.usageinfo.storage</a>) and its internal name is SiteDiskUsed. You can manually force a re-calculation using SPSite.RecalculateStorageUsed (<a title="https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.recalculatestorageused" href="https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.recalculatestorageused" target="_blank">https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.recalculatestorageused</a>).</p>
<p>What features in SharePoint 2013 can influence the size of content databases?&nbsp; The following SharePoint Server 2013 features can significantly affect the size of content databases:</p>
<ul>
<li><strong>Recycle bins</strong>:&nbsp; Until a document is fully deleted from both the first stage and second stage recycle bin, it occupies space in a content database. Calculate how many documents are deleted each month to determine the effect of recycle bins on the size of content databases. For more information, see &ldquo;Configure Recycle Bin settings in SharePoint Server 2013.&rdquo;</li>
<li><strong>Auditing</strong>:&nbsp; Audit data can quickly compound and use large amounts of space in a content database, especially if view auditing is turned on. Rather than letting audit data grow without constraint, we recommend that you enable auditing only on the events that are important to meet regulatory needs or internal controls. If you enable auditing within a site collection, use the following guidelines to estimate the space that you must reserve for auditing data:
<ul>
<li>Estimate the number of new auditing entries for a site, and multiply this number by 2 KB (entries generally are limited to 4 KB, with an average size of about 1 KB).</li>
<li>Based on the space that you want to allocate, determine the number of days of audit logs you want to keep.</li>
<li>TIP!&nbsp; Remember to also configure automatic audit log trimming for your site collection.&nbsp; Site Settings &gt; Site Collection Administration &gt; Site collection audit settings &gt; Audit Log Trimming</li>
</ul>
</li>
<li><strong>Gradual site delete</strong>:&nbsp; When you delete a site collection, it&rsquo;s not immediately completely deleted from the source content database just the flag for deletion has been set to 1 in the database for that site collection. You will find a timer job in central administration, scope to the web app, which is called &ldquo;Gradual site delete.&rdquo;&nbsp; This job needs to run to delete the whole site collection from the database. The timer job is scheduled by default to run daily, but you can also force it to run manually. When that job runs the source database should get smaller for the size of the site collection removed.</li>
</ul>
<p><strong>&nbsp;</strong></p>
<p><strong>ADDITIONAL REFERENCES</strong></p>
<p>Total Size from Storage Metrics shows full size file version in SharePoint 2013<br /><a title="https://support.microsoft.com/en-us/kb/3038333" href="https://support.microsoft.com/en-us/kb/3038333" target="_blank">https://support.microsoft.com/en-us/kb/3038333</a></p>
<p>Software boundaries and limits for SharePoint 2013 <br /><a title="https://technet.microsoft.com/en-us/library/cc262787.aspx" href="https://technet.microsoft.com/en-us/library/cc262787.aspx" target="_blank">https://technet.microsoft.com/en-us/library/cc262787.aspx</a></p>
<p>Storage and SQL Server capacity planning and configuration (SharePoint Server 2013)<br /><a title="https://technet.microsoft.com/en-us/library/cc298801.aspx" href="https://technet.microsoft.com/en-us/library/cc298801.aspx" target="_blank">https://technet.microsoft.com/en-us/library/cc298801.aspx</a></p>
<p>Configure Recycle Bin settings in SharePoint Server 2013<br /><a title="https://technet.microsoft.com/en-us/library/cc263125.aspx" href="https://technet.microsoft.com/en-us/library/cc263125.aspx" target="_blank">https://technet.microsoft.com/en-us/library/cc263125.aspx</a></p>
<p>Timer job reference (SharePoint 2013)<br /><a title="https://technet.microsoft.com/en-us/library/cc678870.aspx" href="https://technet.microsoft.com/en-us/library/cc678870.aspx" target="_blank">https://technet.microsoft.com/en-us/library/cc678870.aspx</a></p>
<p>Best practices for SQL Server in a SharePoint Server farm <br /><a title="https://technet.microsoft.com/en-us/library/hh292622.aspx" href="https://technet.microsoft.com/en-us/library/hh292622.aspx" target="_blank">https://technet.microsoft.com/en-us/library/hh292622.aspx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint Slowness/Latency Troubleshooting Questions</title>
      <link>https://docs.microsoft.com/archive/blogs/marj/sharepoint-slownesslatency-troubleshooting-questions</link>
      <pubDate>Wed, 12 Aug 2015 11:28:00 GMT</pubDate>
      <dc:creator><![CDATA[Marj Palmer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/marj/2015/08/12/sharepoint-slownesslatency-troubleshooting-questions/</guid>
      <description><![CDATA[Following is a list of questions which can be useful aid for investigating SharePoint...]]></description>
      <content:encoded><![CDATA[<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Following is a list of questions which can be useful aid for investigating SharePoint latency/slowness issues&hellip; </span></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">When did the issue start? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">How many users are experiencing the issue? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Are all users affected, or just some? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; What is user login account of an affected user? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Is the issue specific to only one computer? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; What is public IP address of the affected computer? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Is the user is behind a firewall or proxy? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">For a user experiencing slowness, does same user experience same slow performance when using a different PC or device to access SharePoint? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Is the issue specific to one geographical location? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">What kinds of users are experiencing the issue? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Are AD managed user accounts affected? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Are federated user accounts affected? If so: </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;o Are you using Active Directory Federation Services (AD FS)? If so, how is your AD FS setup? DirSync? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;o Are you using any third-party solutions like Ping federated? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Does the specific network affect the performance? For example, </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Is the issue occurring from the office network? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Is it occurring on cellphones or mobile devices that aren&#39;t connected to Wi-Fi? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Is it occurring from home? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Is it occurring from a free Wi-Fi hot spot? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">What is URL of site where slowness observed? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">What is URL to one particular page exhibiting slowness? Can you screen capture page? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">What authentication types and providers are configured for the SharePoint web application? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Can you clarify the particular type of SharePoint Online slowness observed? For example: </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Site pages are slow to display? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Slow response from dialog windows? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; File uploads or downloads are generally slow? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Is the performance problem intermittent, or constant? If it&#39;s intermittent, </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Have you identified any pattern with the behavior? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Does the time of day make a difference? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Page/Site Scope: </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Are all pages in a site exhibiting slowness? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Is only a specific page exhibiting slowness? If so: </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp;&nbsp;&nbsp; o What&#39;s located on the affected Page? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp;&nbsp;&nbsp; o When you browse to the slow page, add ?Contents=1 to the end of the URL. The Web Part maintenance page will appear. Can you screen capture? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Are all sites in the site collection exhibiting slowness? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Are multiple site collections exhibiting slowness? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Does the issue occur only on a new or on an existing site collection, or both? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; If you add a new page to the site, is that new page also slow? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Is the site customized? If so: </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Has the customization ever worked, or is this a new feature? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Could the customization be involved in degrading performance? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; What is the goal or purpose of the customization? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; How are you customizing site? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Are publishing features enabled for the site? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Has anything changed since the time that the page worked correctly and now? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Have you migrated any content to the site collection? If yes, are you still migrating content? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Have you on-boarded lots of new users? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Have you created lots of content recently? </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">If the slow page displays a view of a list/library, how many items are in current view? </span></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;"><span style="font-family:Times New Roman;font-size:medium;"> </span><br /></span></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">TOOLS YOU CAN USE TO COLLECT DIAGNOSTIC&nbsp;DATA <br /></span></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Fiddler trace (</span><a href="https://www.fiddler2.com/fiddler2/"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">https://www.fiddler2.com/fiddler2/</span></a><span style="font-family:Calibri;font-size:medium;">): Fiddler is a free web debugging tool which logs all HTTP(S) traffic between your computer and the Internet. Recommend you capture a Fiddler trace while doing following: </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Browse to your site where experiencing slowness and perform actions that are taking longer than expected. </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Browse to multiple libraries or lists on the site. View at least 2 to 3 libraries and or lists. </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Have you seen issues with Searching performance? If so, run a search query. </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Upload a document. To limit the time that is required to test, use a file that is approximately 1 megabyte (MB), but no larger than 10 MB. </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Download one or more files. </span></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;"><span style="font-family:Times New Roman;font-size:medium;"> </span><br /></span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">Fiddler Notes: </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; In the Fiddler trace you should see http status codes of 200 or 401. You shouldn&rsquo;t see a 304 error. A 304 error indicates you are using the local copy. If you see 304 errors, that means the Fiddler trace has to be rerun after clearing local browser cache. There is a clear cache button in Fiddler that can also be used. The goal for a good Fiddler trace collection is to capture all the CSS files, JS files, and so on, to help diagnose the issue. </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; When collecting a Fiddler trace, it&#39;s ideal to obtain a Fiddler trace where the issue reproduces. However, this isn&#39;t required. If the issue is intermittent, collecting a Fiddler trace correctly can be very important for understanding your general code flow and page request and can help facilitate troubleshooting </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&nbsp; </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">PathPing to the site (</span><a href="https://technet.microsoft.com/en-us/library/ff963096.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">https://technet.microsoft.com/en-us/library/ff963096.aspx</span></a><span style="font-family:Calibri;font-size:medium;">) </span></p>
<p style="margin:0in 0in 0pt;"></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;">&bull; Can help diagnose network connectivity and congestion issues. PathPing is a command-line route tracing tool that combines features of the tools Ping and TraceRt with additional information. PathPing sends packets to each router on the way to a final destination over a period of time, and then computes results based on the packets returned from each hop. PathPing shows the degree of packet loss at any given router or link, allowing you to pinpoint which routers or links might be causing network problems. </span></p>
<p style="margin:0in 0in 0pt;"><span style="font-family:Calibri;font-size:medium;"><span style="font-family:Times New Roman;font-size:medium;"><span style="font-family:Times New Roman;font-size:medium;"> </span><br /></span></span></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Workflows Best Practice - Purge Workflow History List Items</title>
      <link>https://docs.microsoft.com/archive/blogs/marj/sharepoint-2010-workflows-best-practice-purge-workflow-history-list-items</link>
      <pubDate>Fri, 07 Aug 2015 00:35:00 GMT</pubDate>
      <dc:creator><![CDATA[Marj Palmer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/marj/2015/08/07/sharepoint-2010-workflows-best-practice-purge-workflow-history-list-items/</guid>
      <description><![CDATA[BEST PRACTICE: Define requirements for when SharePoint 2010 Workflow History list items can expire...]]></description>
      <content:encoded><![CDATA[<p>BEST PRACTICE: Define requirements for when SharePoint 2010 Workflow History list items can expire and be purged, and implement either a manual or an automated process to periodically purge expired workflow history list items!&nbsp;</p>
<p><span style="color:#ff0000;"><strong>UPDATE NOVEMBER 30, 2015:</strong>&nbsp; Clarification that this History List purge best practice is also applicable for: </span></p>
<ul>
<li><span style="color:#ff0000;">SharePoint 2010 &amp; 2013&nbsp;style workflows in SharePoint 2013</span></li>
<li><span style="color:#ff0000;">SharePoint 2010 &amp; 2013 style workflows in Office 365 SharePoint Online</span></li>
</ul>
<p><em>&nbsp;</em></p>
<p><em>Why?</em><br />The SharePoint 2010 built-in workflow cleanup job removes workflow history associations, but does not actually delete the items from the Workflow History list, allowing that list to potentially grow very large and unmanageable&hellip;sometimes millions of items (can severely impact site performance)!&nbsp; Also when items exceeds 5,000 in the Workflow History list, query throttling can make the list difficult to view without a filtered query that returns less item results than the list view threshold.</p>
<p><em>Can I just increase the query throttling threshold or disable throttling on the list?&nbsp;</em> <br />The Microsoft best practice guidance is, &ldquo;We recommend against changing the query throttling thresholds (or disabling throttling on a list). The default limit of 5,000 items was chosen to match the default point at which SQL Server will escalate from row-level locks to a table-level lock, which has a markedly detrimental effect on overall throughput.&rdquo;&nbsp;</p>
<p><em>Additional Information&hellip;</em><br />A workflow is made up of a sequence of events such as workflow initiation, task creation, and task completion. When you add a workflow, you specify a task list and a history list that workflow instances of that workflow association will use to track the events for the workflow. The task list contains items that users interact with and enter data into while interacting with a workflow. The workflow history contains key information about each event including date, status, participant, and description.</p>
<p>By default, Microsoft SharePoint Server 2010 runs a daily Workflow Auto Cleanup job to permanently delete workflow instances and related task entries that still exist 60 days after a workflow is completed or canceled. Workflow history items themselves are not deleted, but the entry point to view them on the status page for a particular instance of a workflow will no longer be available. As with any SharePoint list, as the workflow history and task lists grow in size, site performance may be compromised.</p>
<p>Best Practice Tips!&nbsp;</p>
<p>&bull;&nbsp; Create a separate history and task list for each workflow association to distribute items across lists. Segregating each workflow to write into its own lists can help minimize total number of items in each list and may help avoid hitting SharePoint&rsquo;s query throttling threshold.</p>
<p>&bull;&nbsp; Workflow history is not intended to be used to audit workflow events and is not necessarily secure because a user who has edit permissions on the site can update items in the history list, by default.&nbsp; If auditing is crucial for workflows, such as tracking who approved a particular document and when, develop a custom audit mechanism (perhaps using a separate custom list or a site column to store the data).</p>
<p>WORKFLOW HISTORY LIST PURGE OPTIONS</p>
<p>The simplest purge solution to implement would be manually deleting the Workflow History list items on a regular basis before they surpass 5000 items.</p>
<p>An out-of-the-box solution approach to automate purging is configuring information management retention policy settings on workflow history lists, which allows SharePoint to regularly sweep the list and physically delete expired items.&nbsp; One potential risk of this solution approach concerns long running workflow, because you might potentially delete history list items for which the workflow status is not yet completed.&nbsp; However a best practice is to never design long running workflows (which pause and wait a long time for an event to occur before resuming and running to completion), so that shouldn&rsquo;t be an issue!&nbsp; Following is how to configure information management policy settings on the Workflow History list and have SharePoint automatically purge the list for you.&nbsp;</p>
<p>1) Open the Workflow history list (your site url + Lists/WorkflowHistory</p>
<p>2) Open the List settings page, and select &ldquo;Information management policy settings&rdquo; in the Permissions and Management section. If you don&rsquo;t see this option, you may need to enable the site collection feature, Library and Folder Based Retention</p>
<p>3) In the Content type policies, select the Workflow History content type, and then select &ldquo;Enable Retention&rdquo;. Once enabled, you will be able to select &ldquo;Add a retention stage&rdquo;.</p>
<p>Stage Properties</p>
<p>Event <br />&nbsp; Time Period: Date Occurred + 120 days&nbsp;&nbsp; (to purge any items over 4 months old)<br />Action: <br />&nbsp; Permanently Delete</p>
<p>4) Save list policy, the expired items will be deleted the next time the timer jobs run.&nbsp;&nbsp;</p>
<p>5) go to Central Administration -&gt; Monitoring -&gt; Review Job Definitions.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; In the list of timer jobs, select Information management policy and schedule the job to run at a particular instance of time (minutes, hourly, daily, weekly, monthly).&nbsp; Then, select Run Now.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; In the list of timer jobs, select Expiration policy and schedule the job to run at a particular instance of time (minutes, hourly, daily, weekly, monthly).&nbsp; Ensure previous job finishes running, then select Run Now.</p>
<p></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>How to Run CSOM-EnumerateSiteUrls.ps1 Using CSOM and Search to Gather List of Personal Sites in SharePoint Online</title>
      <link>https://docs.microsoft.com/archive/blogs/marj/how-to-run-csom-enumeratesiteurls-ps1-using-csom-and-search-to-gather-list-of-personal-sites-in-sharepoint-online</link>
      <pubDate>Fri, 10 Jul 2015 17:19:00 GMT</pubDate>
      <dc:creator><![CDATA[Marj Palmer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/marj/2015/07/10/how-to-run-csom-enumeratesiteurls-ps1-using-csom-and-search-to-gather-list-of-personal-sites-in-sharepoint-online/</guid>
      <description><![CDATA[This post provides step-by-step instructions to help you understand how to&nbsp;successfully run...]]></description>
      <content:encoded><![CDATA[<p>This post provides step-by-step instructions to help you understand how to&nbsp;successfully run the&nbsp;example PowerShell script available in the Microsoft download center &quot;<strong>CSOM-EnumerateSiteUrls.ps1</strong>&quot;, which uses the SharePoint client side object model (CSOM) and Search to gather a list of personal sites in Office 365 SharePoint Online.</p>
<p><strong>Enumerate Site URLs in SharePoint Online</strong><br /><a href="https://www.microsoft.com/en-us/download/details.aspx?id=44294" title="https://www.microsoft.com/en-us/download/details.aspx?id=44294" target="_blank">https://www.microsoft.com/en-us/download/details.aspx?id=44294</a></p>
<ul>
<li>File Name: CSOM-EnumerateSiteUrls.ps1</li>
<li>Version: Oct2014</li>
<li>Date Published: 10/3/2014</li>
<li>File Size: 11 KB</li>
</ul>
<p></p>
<p>Prior to running the example PowerShell script, you must install client components SDK in order to run SharePoint 2013 CSOM&hellip;</p>
<p><strong>SharePoint Server 2013 Client Components SDK</strong><br /><a href="https://www.microsoft.com/en-us/download/details.aspx?id=35585">https://www.microsoft.com/en-us/download/details.aspx?id=35585</a><span style="font-size:small;"><strong><br /></strong></span></p>
<p><span style="font-size:small;">&nbsp;</span></p>
<p><span style="font-size:small;"><strong>How To Run CSOM-EnumerateSiteUrls.ps1</strong></span></p>
<p>1. Launch a <em>Windows Powershell</em> window and Run As Administrator.&nbsp;</p>
<p>Note: Do NOT launch SharePoint Online Management Shell window!&nbsp; Do NOT execute any Connect-SPOService cmdlet!&nbsp; Otherwise, script will fail with the error... &#39;New-Object : Cannot find an overload for &quot;KeywordQuery&quot; and the argument count: &quot;1&quot;&#39;</p>
<p>2. Change directory to location of the PowerShell script.</p>
<p>3. Execute the PowerShell script.</p>
<p><span style="font-family:courier new,courier;">.\CSOM-EnumerateSiteUrls.ps1</span></p>
<p>4. Script prompts to supply value for MySiteHostURL parameter value. Supply value similar to following, where &quot;&lt;tenant&gt;&quot; is your Office 365 tenant (example, &quot;contoso&quot;).</p>
<p><span style="font-family:courier new,courier;">https://&lt;tenant&gt;-my.sharepoint.com</span></p>
<p>5. Script prompts to supply value for Adminlogin. Specify a Global Administrator account for your tenant.</p>
<p><span style="font-family:courier new,courier;">admin@&lt;tenant&gt;.onmicrosoft.com</span></p>
<p>6. Script prompts to &quot;Please enter your password&quot; for &lt;Adminlogin&gt;.&nbsp; Type password for the Global Admin account specified as Adminlogin parameter. Then press Enter.</p>
<p><br /><strong>ADDITIONAL NOTES</strong></p>
<p>I have test run the script successfully myself using installed SharePoint Client Components at version 15.0.4641.1002 (as verified in Windows Programs and Features).</p>
<p>Installed location of DLLs&nbsp;was...<br />C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\</p>
<p>Microsoft.SharePoint.Client.dll<br />8/1/2014<br />V15.0.4641.1000</p>
<p>Microsoft.SharePoint.Client.Runtime.dll<br />8/1/2014<br />15.0.4561.1000</p>
<p>Microsoft.SharePoint.Client.Taxonomy.dll<br />8/1/2014<br />V15.0.4420.1017</p>]]></content:encoded>
    </item>
    <item>
      <title>Pros/Cons of 3 Options to Change URL and Bindings for a Web Application in SharePoint Server</title>
      <link>https://docs.microsoft.com/archive/blogs/marj/proscons-of-3-options-to-change-url-and-bindings-for-a-web-application-in-sharepoint-server</link>
      <pubDate>Mon, 06 Jul 2015 15:48:00 GMT</pubDate>
      <dc:creator><![CDATA[Marj Palmer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/marj/2015/07/06/proscons-of-3-options-to-change-url-and-bindings-for-a-web-application-in-sharepoint-server/</guid>
      <description><![CDATA[In this post I discuss pros and cons of 3 options to change a URL for a SharePoint Server web...]]></description>
      <content:encoded><![CDATA[<p>In this post I discuss pros and cons of 3 options to change a URL for a SharePoint Server web application.&nbsp; I do not recommend using Option 1, and explain why below. Whether to use Option 2 or 3 will depend upon your particular scenario and requirements, and there&rsquo;s pros and cons for each option.&nbsp; Note: How to add additional URLs and IIS bindings to a web application is covered in a separate blog <a title="How to Configure Additional URL for a Web Application in SharePoint Server" href="/b/marj/archive/2015/07/06/how-to-configure-additional-url-for-a-web-application-in-sharepoint-on-premises.aspx" target="_blank">post</a>, and can be accomplished by extending the web application into an unused zone.</p>
<p><span style="font-size:small;"><strong>Example Scenario:&nbsp;</strong> You want to revise the default URL (https://servername:5555) for an existing SharePoint 2010 web application to be a more user-friendly URL (https://inside.contoso.com). Then users will solely access the web application using the new user-friendly URL.</span></p>
<p><br /><span style="font-size:small;"><strong>Option 1:&nbsp; Edit Bindings of IIS and Change the Alternate Access Mapping&nbsp; [NOT RECOMMENDED]</strong></span><br /><br />1.1 Go to Central Administrator, System Settings, Farm Management, Configure alternate access mappings, Alternate Access Mapping Collection, Change Alternate Access Mapping Collection, Select the collection corresponding to the Web Application you wish to change.<br /><br />1.2 Click Edit Public URLs, overtype the URL you wish to change, and click Save to save your AAM change.&nbsp; SharePoint does not automatically change any bindings in IIS.<br /><br />1.3 Using IIS Manager on each WFE server, manually change the bindings for the corresponding web site to match URL change.&nbsp; Good idea to do an IISRESET /NOFORCE after changing IIS bindings.<br /><br />1.4 Open a SharePoint Management Shell and execute PowerShell to update the display Name of the SharePoint web application to something meaningful.&nbsp; For example,<br /><br /><span style="font-family:courier new,courier;font-size:small;">&nbsp;$rwa=Get-SPWebApplication | where {$_.Name -match &quot;Your Old Web Application Name&quot;}</span><br /><span style="font-family:courier new,courier;font-size:small;">&nbsp;$rwa.Name</span><br /><span style="font-family:courier new,courier;font-size:small;">&nbsp;$rwa.Name=&quot;Your New Web Application Name&quot;</span><br /><span style="font-family:courier new,courier;font-size:small;">&nbsp;$rwa.Update()</span><br /><span style="font-family:courier new,courier;font-size:small;">&nbsp;Get-SPWebApplication | where {$_.Name -match &quot;Your New Web Application Name&quot;} </span><br /><br />Pros:</p>
<ul>
<li>Avoids having to extend web application into another AAM zone (which would create an additional backing web site in IIS)</li>
<li>Deployed custom solutions, including web.config customizations, are generally unaffected by this approach.</li>
</ul>
<p><br />Cons:</p>
<ul>
<li>When you change the URL (Host Header and/or Port bindings) of a SharePoint web application by updating the Alternate Access Mapping and manually update the bindings in IIS, the SPWebApplication object which is stored in the objects table in the configuration database is never updated so it continues to maintain bindings knowledge of the original URL and not the new one.&nbsp;&nbsp; When you start the Microsoft SharePoint Foundation Web Application service in Central Admin (or via PowerShell), the information from the associated SPWebApplication object in the configuration database is used when instantiating IIS Sites and original URL shows up.&nbsp; How to avoid this issue?&nbsp; The SharePoint PowerShell cmdlets do not provide a direct way to update web app bindings stored in the Config DB.&nbsp; However, you could use PowerShell in combination with client site object model code to update the web app bindings in the config db to changed values.</li>
<li>Changing the display Name property of the SharePoint web application via PowerShell does not correspondingly change the Alternate Access Mapping Collection name, which can be confusing.&nbsp; Doesn&rsquo;t seem to be a PowerShell cmdlet to directly change this AAM collection name.&nbsp; Perhaps it can also be changed using PowerShell and client side object model code, but I haven&rsquo;t explored this possibility.</li>
</ul>
<p><br /><br /><span style="font-size:small;"><strong>Option 2:&nbsp; Un-extend and re-extend the Web Application In SharePoint</strong></span><br /><br />2.1 Go to Central Administrator, Application Management, Select the Web Application you wish to change and click the arrow under Delete and choose Remove SharePoint from IIS Web Site.<br /><br />2.2 Next, select the associated IIS Web site for which want to update the URL.&nbsp; For Delete IIS web sites, select No and click OK.&nbsp; Note: Content databases and IIS web sites are preserved.<br /><br />2.3 Go to Central Administrator, Application Management, Select the same Web Application and choose Extend button on the ribbon.<br /><br />2.4 Choose Use an existing IIS Site and choose the original site from Step 2.2 above. Specify the new IIS Web Site bindings, Host Header and/or Port, and any other settings that should match.&nbsp; SharePoint will automatically update the bindings in corresponding web site in IIS.<br /><br />Pros:</p>
<ul>
<li>Because you are re-using existing web site in IIS when you re-extend web app, this approach avoids extending web app and creating an additional backing web site in IIS.</li>
<li>SharePoint automatically updates the corresponding web site bindings in IIS when using this technique.</li>
<li>Whenever you create/extend a web application, SharePoint stamps the IIS Web Site bindings on the spwebapplication object which is stored in the objects table in the configuration database.&nbsp;&nbsp;</li>
</ul>
<p><br />Cons:</p>
<ul>
<li>Custom solutions.&nbsp;
<ul>
<li>If you perform these steps on a web app with only one zone all the solutions deployed to the web app will be dissociated. Re-deploying them may cause issues because features might already be activated.&nbsp; Test!</li>
<li>If the web.config for a web application has been manually customized outside of SharePoint, be aware that Extending a web application creates a new default web.config file and will lose your customizations.</li>
</ul>
</li>
</ul>
<p><br /><br /><span style="font-size:small;"><strong>Option 3:&nbsp; Delete and re-create the Web Application in SharePoint</strong></span><br /><br />3.1 Go to Central Administration, Application Management, Select the Web Application you wish to change and click the arrow under Delete and choose Delete Web Application. Selection delete options to keep the content databases but delete the IIS web site.<br /><br />3.2 In Central Administration, Application Management, click New to create a new application.<br /><br />3.3 Specify a new IIS Web Site and new binding information, Host Header and/or Port.&nbsp; For Database Name, specify the existing content database name retained in step 3.1. Verify that the Public URL field is correct.&nbsp; Specify any other settings as appropriate.&nbsp; Click Save to create the new web app and IIS web site, reusing existing content database.<br /><br />Pros:</p>
<ul>
<li>Because you are deleting and recreating web site in IIS, this approach avoids extending web app and creating an additional backing web site in IIS.</li>
<li>SharePoint automatically updates the corresponding web site bindings in IIS when using this technique.</li>
<li>Whenever you create/extend a web application, SharePoint stamps the IIS Web Site bindings on the spwebapplication object which is stored in the objects table in the configuration database.&nbsp;&nbsp;</li>
</ul>
<p><br />Cons:</p>
<ul>
<li>Suitable only if web application is not currently extended and URL exists only in Default zone.</li>
<li>Custom solutions.&nbsp;
<ul>
<li>If you perform these steps on a web app with only one zone all the solutions deployed to the web app will be dissociated. Re-deploying them may cause issues because features might already be activated.&nbsp; Test!</li>
<li>If the web.config for a web application has been manually customized outside of SharePoint, be aware that recreating a web application creates a new default web.config file and will lose your customizations.</li>
</ul>
</li>
</ul>
<p><br /><strong>ADDITIONAL REFERENCES</strong></p>
<p>Update a web application URL and IIS bindings for SharePoint 2013<br />https://technet.microsoft.com/en-us/library/cc262366.aspx</p>
<p>How to properly change the Host Header URL of a web application in SharePoint 2010<br />https://blogs.msdn.com/b/russmax/archive/2013/02/27/how-to-properly-change-the-host-header-url-of-a-web-application-in-sharepoint-2010.aspx</p>]]></content:encoded>
    </item>
    <item>
      <title>Supported Way to Configure Additional URL for a Web Application in SharePoint Server</title>
      <link>https://docs.microsoft.com/archive/blogs/marj/supported-way-to-configure-additional-url-for-a-web-application-in-sharepoint-server</link>
      <pubDate>Mon, 06 Jul 2015 15:45:00 GMT</pubDate>
      <dc:creator><![CDATA[Marj Palmer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/marj/2015/07/06/supported-way-to-configure-additional-url-for-a-web-application-in-sharepoint-server/</guid>
      <description><![CDATA[Example Scenario:&nbsp; You want to add another user-friendly URL (https://inside.contoso.com) to...]]></description>
      <content:encoded><![CDATA[<p></p>
<p><span style="font-size:small;"><strong>Example Scenario:&nbsp;</strong> You want to add another user-friendly URL (https://inside.contoso.com) to an existing SharePoint 2010 or 2013&nbsp;web application in addition to the default URL (https://servername:5555). Then users can access the web application using either the default or user-friendly URL.</span><br />&nbsp;<br /><span style="color:#0000ff;"><strong>To be in a Microsoft supported state, every alternate access mapping URL in SharePoint must have a backing IIS site which means that the web application has to be extended into another zone. </strong></span>What this means is you cannot have multiple public URLs in same AAM zone for one SharePoint web application.&nbsp; Multiple internal URLs can be associated with a single public URL. But each zone can have only a single public URL.&nbsp; If alternate access mappings are configured manually without extending web application, unexpected authentication failures could occur on some sites depending on authentication settings.&nbsp; https://support.microsoft.com/kb/2624320<br />&nbsp;<br /><strong>ADDITIONAL REFERENCES</strong><br />&nbsp;<br />VIDEO How Do I: Configure an Alternate Access Mapping in SharePoint 2010?<br />https://technet.microsoft.com/en-us/video/dn153778.aspx</p>
<p>Plan alternate access mappings for SharePoint 2013<br />https://technet.microsoft.com/en-us/library/cc261814.aspx</p>
<p>Extend claims-based web applications in SharePoint 2013<br />https://technet.microsoft.com/en-us/library/gg276325.aspx</p>]]></content:encoded>
    </item>
    <item>
      <title>Recommendations for SharePoint Setup User Account and SharePoint Farm Administrators Group</title>
      <link>https://docs.microsoft.com/archive/blogs/marj/recommendations-for-sharepoint-setup-user-account-and-sharepoint-farm-administrators-group</link>
      <pubDate>Mon, 06 Jul 2015 07:18:00 GMT</pubDate>
      <dc:creator><![CDATA[Marj Palmer]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/marj/2015/07/06/recommendations-for-sharepoint-setup-user-account-and-sharepoint-farm-administrators-group/</guid>
      <description><![CDATA[SharePoint Setup User Account
Per Microsoft published TechNet guidance for SharePoint...]]></description>
      <content:encoded><![CDATA[<p><br /><span style="font-size:small;"><strong>SharePoint Setup User Account</strong></span></p>
<p>Per Microsoft published TechNet guidance for SharePoint 2007/2010/2013, the Setup User Account must be a generic domain account that&rsquo;s granted special permissions to perform initial SharePoint farm installation and configuration.&nbsp; The Setup User Account&nbsp; would be used to run setup to install SharePoint software on each server.&nbsp; And then, to the run SharePoint Products Configuration Wizard to create new farm and join member servers to farm.&nbsp; Why is the Setup User Account needed?&nbsp; In the future when performing maintenance activities on the farm, the SharePoint Farm Administrator could encounter an out-of-the-ordinary Access Denied failure, for which logging in as original Setup User Account to perform the activity might be only possible resolution.&nbsp; If the SharePoint farm was initially installed and configured by a user who logged in as their own user account and then that user later leaves the company causing their account to be deleted from Active Directory&hellip; then there may be no possible way to resolve such an Access Denied problem.</p>
<p>However after initial setup of the SharePoint farm is complete, I recommend my customers inactivate the Setup User Account in Active Directory so interactive logon is not possible, but leave all permissions granted to account intact.&nbsp; Then in future if that account is needed quickly to resolve a troublesome Access Denied issue with maintaining the farm, simply re-active the account in AD and all necessary permissions are still effective.&nbsp; I also recommend following&hellip;</p>
<p><span style="font-size:small;"><strong>SharePoint Farm Administrators Group</strong></span></p>
<p><strong>Recommend:</strong> To perform any ongoing maintenance to the SharePoint farm, avoid routine practice where SharePoint Farm Admins need to login interactively using SharePoint Server Farm Service account (or the Setup User Account). Move toward better practice where Farm Admins login interactively using their individual user accounts to perform their day-to-day duties.&nbsp; Why?</p>
<p>&bull; <em>Security best practice is to not permit service accounts to be routinely used for interactive login by any user.&nbsp;</em> One reason is service accounts typically have very high privilege, usually more than is required by the user (doesn&rsquo;t follow the least privilege security model).&nbsp; <br />&nbsp;<br />&bull; <em>Security best practice is to never allow users to share accounts.&nbsp;</em> Such sharing (such as by multiple farm admins) of a service account for interactive login makes it harder to audit who actually did what after-the-fact.</p>
<p><strong>Recommend:</strong>&nbsp; I have suggested that my customers establish role-based global groups in AD for SharePoint Farm Admins.&nbsp; I recommend they create at least 2 SharePoint Farm Administrators groups in AD, 1 for production &amp; 1 for non-production farms (dev, QA, etc).&nbsp; The individual user accounts of each Farm Admin are then added as a members into the AD group.&nbsp; When a Farm Admin is no longer in the role, you simply remove that user from AD group and all inherited permissions are automatically removed.</p>
<p>For example, SharePoint Farm Administrators Global Groups:<br />CONTOSO\SP15FarmAdminDev-G&nbsp;&nbsp;&nbsp; <br />CONTOSO\SP15FarmAdminProd-G&nbsp;&nbsp;&nbsp;</p>
<p>Grant the AD group necessary SharePoint Farm Administrator permissions:</p>
<ul>
<li>Add to SharePoint_Shell_Access role (&quot;Add-SPShellAdmin CONTOSO\SP15FarmAdminDev-G&quot;)</li>
<li>Logon Interactive Windows user right for each SharePoint Server</li>
<li>Member of local Windows Administrators group on all SharePoint servers</li>
<li>OPTIONAL: Granted Full Control permissions for each SharePoint web application via user policy</li>
<li>Grant Logins privilege for SQL Server</li>
<li>Grant SecurityAdmin and DBCreator fixed server roles in SQL Server</li>
<li>Grant db_owner role to any existing SharePoint databases</li>
</ul>
<p><strong>Recommend:</strong> In future when SharePoint Farm Admins use Central Admin or PowerShell/STSADM to create a new content database, they should also submit a change request to DBA to grant the Farm Admins group the db_owner role privilege on that new DB. Otherwise, they will encounter Access Denied problems when trying to manage the content within the DB.&nbsp; Plus the change request alerts the DBA that a new database has been created in SharePoint.</p>
<p><strong>ADDITIONAL REFERENCES</strong></p>
<p>Choose administrators and owners for the administration hierarchy in SharePoint 2013<br />https://technet.microsoft.com/en-us/library/cc263291.aspx</p>
<p>Plan for administrative and service accounts in SharePoint 2013<br />https://technet.microsoft.com/en-us/library/cc263445.aspx</p>]]></content:encoded>
    </item>
  </channel>
</rss>