Monday, December 29, 2014

SharePoint 2013: The Execute method of job definition Microsoft.SharePoint.Diagnostics.SPDiagnosticsMetricsProvider

Problem

You see the following event occuring daily at about 6:12 AM on your SharePoint 2013 farm servers:

Log Name:      Application
Source:        Microsoft-SharePoint Products-SharePoint Foundation
Date:          [date/time]
Event ID:      6398
Task Category: Timer
Level:         Critical
Keywords:      
User:          [DOMAIN/FarmServiceAcct]
Computer:      [SharePoint Server]
Description:
The Execute method of job definition Microsoft.SharePoint.Diagnostics.
SPDiagnosticsMetricsProvider (ID 9cde39fb-4971-4a03-9612-0978098691d7) 
threw an exception. More information is included below.

An update conflict has occurred, and you must re-try this action. The 
object SPWebService was updated by [DOMAIN/FarmServiceAcct], in the 
OWSTIMER (8696) process, on machine [SharePoint Server].  View the 
tracing log for more information about the conflict.
Event Xml:
...

This error is generated if the Config Refresh timer job finds out-of-sync caches among the SharePoint servers.  System topology includes one application server and two web front end servers.

This posting unfortunately does not present a solution, but documents troubleshooting steps and reference articles for future reference.

Troubleshooting
  1. Check cache ID
    1. APP1: 2248964
    2. WFE1: 2248968
    3. WFE2: 2248970
      Note: this value is changing constantly.  if you open each cache.ini file on each machine separately, you may get different values - not because the caches are out of sync but due to the cache ID changing from when you open the file on one machine to when you open it on another machine.  To get an accurate snapshot of this value at any moment in time for all machines, have remote sessions open on all machines simulataneously, and then in quick succession make copies of the file on each one.  Then open these copies to determine the actual cache ID.
  2. Clear cache
    1. First, stopped Timer service on all SharePoint servers.
    2. Then on each server, starting with App1:
      1. Navigated to C:\ProgramData\Microsoft\SharePoint\Config.
      2. Looked for current GUID folder (check dates).
      3. Deleted all XML files in this folder.
      4. Replaced contents of cache.ini with "1".
    3. Started timer service on APP1
      1. Waited for it to rebuild fully.
        Note: if you have security software (McAfee, etc) installed, it will significantly consume resources scanning the creation of all of the new cache files, temporarily adversely impacting performance.
      2. 1658 XML cache files generated
    4. Started timer service on WFE1
      1. Waited for it to rebuild fully.
      2. 1658 XML cache files generated
      3. Refreshed application logs APP1 and WFE1
    5. Started timer service on WFE2
      1. Waited for it to rebuild fully
      2. 1658 XML cache files generated
  3. Verify cache IDs
    1. After cache rebuild completed, checked contents of each cache.ini:
      1. APP1: 2248998
      2. WFE1: 2248998
      3. WFE2: 2248998
        See note above on getting accurate values for ID.
  4. Verify solution
    1. Check event logs one day later: same issue recurring
    2. Check event logs five days later: same issue recurring.
Solution
  1. None found at this time 12/29/14.
References
Notes
  • Also checked development farm servers: APP1: 2733002, WFE1: 2733006 and WFE2: 2733006. After performing the above procedure: APP1: 2733071, WFE1: 2733071 and WFE2: 2733071.  Same experience: issue continues to occur after clearing cache.

Friday, December 26, 2014

SharePoint 2013: Critical 6398: The Execute method of job definition Microsoft.Office.Server.UserProfiles.UserProfileImportJob...

Problem

The following event is occuring every minute in the application event log on one of your farm's application servers:

Log Name:      Application
Source:        Microsoft-SharePoint Products-SharePoint Foundation
Date:          [date/time]
Event ID:      6398
Task Category: Timer
Level:         Critical
Keywords:      
User:          [FarmServiceAccount]
Computer:      [ApplicationServer]
Description:
The Execute method of job definition Microsoft.Office.Server.UserProfiles.
UserProfileImportJob (ID deabe75d-3701-43c1-9968-920febb91024) threw an 
exception. More information is included below.

There was no endpoint listening at 
http://[ApplicationServer]:5725/ResourceManagementService/MEX that could 
accept the message. This is often caused by an incorrect address or SOAP 
action. See InnerException, if present, for more details.
Event Xml:
...
 
Checking the Services control panel on the farm application server, I found that the FIM service had stopped.

Solution
  • Start or restart the FIM and/or FIM Synchronization services (whichever is stopped).
References
Notes
  • I checked failed jobs in Central Administration Job History listing during the period that this event was occurring (the error event filled the server's Application log), but was unable to find any failed job that occurred at the same times.  The only user profile jobs having one minute scheduling were
    • User Profile Service - System Job to Manage User Profile Synchronization
    • User Profile Service - User Profile to SharePoint Language And Region Synchronization
    However, both these jobs showed Succeed for each occurence in the Job History.  If anyone can provide some helpful insight on this puzzling discovery, I would be grateful.  Was it one of these jobs that was generating the error?  Or does this particular task not generate a failed job entry if it fails?

Monday, December 22, 2014

DocAve Manager 6: The username or password is invalid

Problem

You are installing the DocAve agent to a new node that you want to add to your DocAve management group, and you experience the following error while configuring the agent account:
 
This can occur when the DocAve user agent service account has inadequate permissions on the node you are adding it to. 

Solution
  • Add the DocAve user agent service account to the local Administrators group.
References
Notes
  • This is the easiest way to resolve this is error.

SharePoint 2013: a review of all methods and their steps for moving document libraries

Introduction

Sometimes, you need to move a document library to another site, such as an archive site.  This can be done in several ways:
  • Save as template using the Include Content option
  • Bulk copying using the site collection Content and Structure tool
  • Bulk copying via Windows Explorer
  • Moving using stsadm
  • Moving using PowerShell
  • Third party tools
This posting reviews each of these methods from a SharePoint 2013 perspective.

Save as Template using the Include Content option
  1. Pros
    1. Easy to use.
    2. Easy access to template after you're done - it's stored in the site collection template gallery.
    3. effectively creates a backup copy.
    4. Does not require advanced knowledge of PowerShell.
    5. Can be done entirely through the web interface.
    6. Preserves all public views.
  2. Cons
    1. Limited to maximum template size set by administrator.
    2. Cannot specify security or version settings.
    3. Does not preserve version history.
    4. Requires at least Design level permission.
    5. No log file generated.
  3. Procedure
    1. Login to the site using an account that has at least Designer level permissions.
    2. Navigate to the target site document library.
    3. Click the LIBRARY tab to display the Library ribbon.
    4. In the Settings group, click the Library Settings button.
    5. In the Permissions Management list group of links, click Save document library as template.
    6. Enter desired template and file names, check the Include Content checkbox; and then click OK.  The document library is then stored in the site collection's  List Template gallery. 
      If the list is larger than about 50 MB, you will experience an error.
      To resolve this error, increase the maximum list template size.  See the references in this section for details.
    7. Click the Settings gear icon, and then click Site Settings.
    8. In the Web Designer Galleries group, look for List templates
      If you don't see it listed here, be sure you are at the site collection level.  You can check this by looking in the Site Collection Administration group: if you can see the link, Go to top level site settings, click it.
    9. Click the link, List templates.
    10. Verify that your document library template is listed.  Click the Edit button to modify the template title and filename.
    11. Now, navigate to the site where you want the document library moved to. 
      This site must exist in the same site collection as the source document library.  If it isn't you can still move it, but you will need to download the template WSP file from the source site collection list template gallery and then upload it to the destination site collection list template gallery.  The list template gallery is just a document library, so, you know how to do this.
    12. Click the Settings gear icon, and then click Site contents.
    13. Click the add an app icon.
    14. Follow the usual steps for adding a new app (ie, document library), only this time choosing the document library template you created.  This creates the document library along with all its content. 
      Note: the document properties Created by and Modified by will be changed for those users who have since left your organization and no longer have Active Directory accounts.  SharePoint will change these to the user account that performed the Save as Template operation.  If you need to preserve such information, you must either copy it to new, custom properties or use a third party tool  
  4. References
    1. SharePoint 2010: The list is too large to save as a template
    2. What is the Size Limit for Saving a Document Library as a Template (SharePoint 2010)
    3. How to use Powershell to set Max template document size
    4. Increase Maximum size of Site, List Templates in SharePoint
    5. Copy or move a library by using a library template
    6. Save, download, and upload a SharePoint 2013 site as a template
    7. SPWebService.MaxTemplateDocumentSize property
    8. Software boundaries and limits for SharePoint 2013
  5. Notes
    1. Default maximum document size template: this would seem to be 50MB, per this Microsoft article: Save, download, and upload a SharePoint 2013 site as a template. However, in actual practice, I have found it to be 52.428800 MB. This value was obtained by executing
      $webservice = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
      $webservice.MaxTemplateDocumentSize
      in an elevated SharePoint PowerShell Management shell on a newly deployed SharePoint 2013 farm for which this setting had not yet been modified.
Bulk Copying/Moving using the Site Content and Structure tool (Site Manager)
  1.  Pros
    1. Does not require knowledge of PowerShell.
    2. Can be done entirely through the web interface.
    3. Existing security settings are migrated.
  2. Cons
    1. Cannot specify security or version settings.
    2. Version history migrated inconsistently (some are, some are not).
    3. Significant complications if document library employs folders: can only be used to copy subfolder by subfolder.
    4. Only works to copy documents from one location to another within the same site collection - does not work for copying documents across site collections.
    5. File size limited to whatever is set for the farm.
  3. Procedure
    1. Login to the source site using an account that has at least Designer level permissions.
    2. Navigate to the target site document library.
    3. Click the LIBRARY tab to display the Library ribbon.
    4. In the Settings group, click the Library Settings button.
    5. In the Permissions Management list group of links, click Save document library as template.
    6. Enter desired template and file names, and then click OK. The document library is then stored in the site collection's List Template gallery. 
      Do not check the Include Content option.
    7. Click the Settings gear icon, and then click Site Settings.
    8. the Web Designer Galleries group, look for List templates.
      If you don't see it listed here, be sure you are at the site collection level. You can check this by looking in the Site Collection Administration group: if you can see the link, Go to top level site settings, click it.
    9. Click the link, List templates.
    10. Verify that your document library template is listed. Click the Edit button to modify the template title and filename.
    11. Now, navigate to the site where you want the document library moved to.
      Note: This site must exist in the same site collection as the source document library. If it isn't you can still move it, but you will need to download the template WSP file from the source site collection list template gallery and then upload it to the destination site collection list template gallery. The list template gallery is just a document library, so, you know how to do this.
    12. Click the Settings gear icon, and then click Site contents.
    13. Click the add an app icon.
    14. Follow the usual steps for adding a new app (ie, document library), only this time choosing the document library template you created. This creates an empty document library that has the same configuration as the source library.  You need source and destination libraries in order to use the Content and Structure tool, because this tool only copies content from one location to another.
    15. Click the Settings gear icon, and then click Site Settings.
    16. In the Site Administration group, click Content and structure.
    17. Using the tree navigation at left, select the document library that you want to move.  Once you select it, its contents will appear in the Results panel.
    18. From the View dropdown, select a view that presents a simple list (no folders) of all of the documents.  By default, 100 items will be shown.
      Note: if your document library employs folders, for some reason, the Site Content and Structure tool will show these even if you select a previously configured view that specifically excludes them.  For example, if your document library employs folders, you can create a simple list view that presents the documents as a single list without folders, and this view works just fine when you are looking at the contents of the library while connected to the document library's page.  On the other hand, the library folders will appear in the left navigation as subitems under the document library.
    19. Check the documents that you want to copy - don't use the Move option or you otherwise will not be able to verify that all of them were copied over. 
      Note: for document libraries employing folders, you will only be able to copy items over subfolder by subfolder.  For example, if two documents lie buried three subfolders deep, it will not work to check these, select another subfolder, checking those, and then selecting Copy from the Actions menu: only the currently visible and checked items will be copied.
    20. Once you have select afrom the Actions menu, select Copy.  A popup will appear presenting the usual site collection tree structure.
    21. Expand the tree to the empty document library that you created back in steps 14, and then click OK.  The popup will close, and you will see progress information appearing temporarily.  Once done, select the new library and you will see listed the documents that you copied over.
    22. Repeat this process for all the documents that you want to copy.
    23. At the end of this process, use simple column counts to verify that all documents have been copied over. 
    24. Once the copied items have been verified, delete the source list or library.
  4. References
    1. How to Use the Site Content and Structure Manager in SharePoint 2013
    2. SharePoint 2013: Moving Lists using the Site Content and Structure Tool
    3. Software boundaries and limits for SharePoint 2013
  5. Notes
    • I found moving lists this way to be advantageous when needing to preserve list item IDs.
Bulk Copying/Moving via Windows Explorer
  1. Pros
    1. Simple to use.
    2. User permissions in Windows Explorer are consistent with user permissions to document library.
    3. Does not require elevated permissions.
  2. Cons
    1. All version history is lost.
    2. All security configuration is lost.
    3. Metadata (column) properties may be lost or misinterpreted.
    4. Must have Contribute (write) permission to destination library.
    5. No log file generated.
  3. Procedure
    1. Navigate to the source document library.
    2. Select the LIBRARY tab.
    3. In the Connect & Export group, click the Open with Explorer button.  Leave this open. 
      The open with Explorer functionality requires 32-bit ActiveX.  This button will not be enabled if using 64-bit Internet Explorer, Chrome or other browsers not featuring native 32-bit ActiveX support.  Add-ons are available for some of these other browsers, such as Chrome, that will emulate 32-bit ActiveX.
    4. Navigate to the destination document library.
    5. Select the LIBRARY tab.
    6. In the Connect & Export group, click the Open with Explorer button. Leave this open.
    7. Copy documents from the source folder to the destination folder.
    8. Once the copied items have been verified, delete the source list or library. 
      You must delete the library through the library settings page.  You cannot delete it through the Windows Explorer window.
  4. References
    1. Copy or move library files by using Open with Explorer
    2. How to use the "Open with Explorer" command and how to troubleshoot issues with this option in SharePoint Online
    3. Plan browser support in SharePoint 2013
    4. IE Tab Extension for Chrome
  5. Notes
    • To determine whether Internet Explorer is 32 or 64 bit, select About Internet Explorer from the Help menu.  If the browser is 64-bit, the Version will indicate this.
Moving using stsadm
  1. Pros
    1. Simpler permissions to use.
    2. Finer control over export.
    3. Preserves security and most version history.
    4. Generates log file for export and import operations.
  2. Cons
    1. Must be member of local administrator's group.
    2. Deprecated.
  3. Procedure
    1. Open a command shell on a SharePoint farm server.
    2. Execute the following command:
       
      stsadm -o export -url "<source library url>" -filename " "<save file path and name>" -includeusersecurity -versions 4.
       
      1. Source Library URL is URL seen in the address bar when viewing the library.  So, if the library is in site Marketing and is called Documents, the URL you would enter would be: http:/Contoso/Marketing/Documents.   Note that you don't include the extra part that points to the particular view, such as "Forms/Allitems.aspx."
      2. Save File Path and Name is local or network location and file name.
    3. In the same browser, execute the following command:

      stsadm -o import -url "<destination library url>" -filename "<file path and name>"
       
    4. Delete the source library.
  4. References
    1. Index for Stsadm operations and properties (Office SharePoint Server)
    2. Some key differences between stsadm export and backup operations
    3. Stsadm to Windows PowerShell mapping in SharePoint 2013
    4. Complete reference of all STSADM operations (with parameters) in MOSS 2007 SP1
    5. Exporting and Importing site, library or list using STSADM SharePoint Administration tool
    6. Export: Stsadm operation (Office SharePoint Server)
  5. Notes
Moving using PowerShell
  1. Pros
    1. Can be scheduled as a task
    2. Finer control over export process via parameters
    3. Generates log file
  2. Cons
    1. Requires advanced scripting knowledge.
    2. Must be member of SharePoint_Shell_Access role.
  3. Procedure
    1. Login to any SharePoint server using an Administrator account.
    2. Launch an elevated instance of the SharePoint Management Shell.
    3. Execute the following:
        Export-SPWeb -Identity "<sourceurl>" -ItemURL "<itemUrl>" -Path "<path>" -IncludeUserSecurity -IncludeVersions "All" -CompressionSize 1000 -Force
      1. <sourceurl>: this is the url to the site containing the document library.  If the site containing the library was Marketing, you might enter something like this: http:/SharePointFarm.Com/Marketing/.  That's it.  Nothing else.  Note the concluding forward slash.  I left out one of the begining forward slashes so that it wouldn't be rendered in this page as a hyperlink.
      2. <itemUrl>: this is the name of document library and the extra portion containing the view.  For example, if the document library was called Documents, you might enter something like this: Documents/Forms/AllItems.aspx.  Note that it does not start with a forward slash.
      3. -CompressionSize 1000 -Force: these last parameters ensure that the export generates a single file.  Note that compression size is in MB.
    4. After finishing the export, import the file to its new location by executing the following:
      Import-SPWeb -Identity "<destinationurl>" -Path "<path>", where
      • <destinationurl> is the URL to the site to which you want to import the library.  For example, if your site was marketing, it would be htp://contoso.com/marketing/.
      • <path> is the path and file name of the list to be imported.  For example, if the file was stored in the Imports folder off the root, it would be: C:\Imports\MyLibrary.cmp.
  4. References
    1. Import-SPWeb
    2. Export-SPWeb
    3. Export sites, lists, or document libraries in SharePoint 2013
    4. Import a list or document library in SharePoint 2013
    5. Cannot find an SPWeb object with Id or Url
    6. Get-SPWeb : Cannot find an SPWeb object with Id or Url
    7. Software boundaries and limits for SharePoint 2013
    8. SharePoint 2013: To export a site, list, or document library
    9. Export/Import-SPSIte :- What is the max size limit that can be moved using this command??
    10. Use Windows PowerShell to administer SharePoint 2013
  5. Notes
Using Central Administration
  1. Pros
    1. Finer control over export process via parameters
    2. Can be performed online using simple web interface
    3. Doesn't require advanced knowledge
    4. Generates a log file.
  2. Cons
    1. Requires user to be a member of the farm administrator's group
    2. Can only be used to export list - cannot be used to import a list.
    3. No control over other parameters, such as compression or multiple files
  3. Procedure
    1. Launch Central Administration
    2. Go: Backup and Restore > Granular Backup > Export a site or list
    3. Configure as appropriate
    4. Click the Start Export button. 
      If a local URL is entered (eg, D:\test.cmp), the file will be saved to the farm application server that is hosting Central Administration.
    5. To then import this, you must use PowerShell or stsadm. 
  4. References
    1. Export sites, lists, or document libraries in SharePoint 2013
    2. Software boundaries and limits for SharePoint 2013
    3. SharePoint 2013: To export a site, list, or document library
  5. Notes
Third Party Tools
  1. Pros
    1. Can preserve all version history and security information
    2. Don't require advanced technical knowledge
  2. Cons
    1. Legal and regulatory Import/Export considerations (if vendor is foreign to your country)
    2. Costs
  3. Listing
    1. SharePoint List Transfer
    2. CopyMove for SharePoint 2013
    3. Content Matrix
    4. ShareGate
    5. Kroll Ontrack PowerControls
  4. Notes

Friday, December 19, 2014

SharePoint 2013: Cannot find an SPWeb object with Id or URL

Problem

You've logged into a farm server with the SharePoint Setup User Administrator account.  You've opened a SharePoint management shell with elevated privileges.  You are attempting to import a document library using the SPWeb object but experience this error:
Import-SPWeb : Cannot find an SPWeb object with Id or URL : <URL>...
This can occur when the account you are logged in as has not been added to the SharePoint_Shell_Access role of the content and/or farm configuration databases.  Generally, you want your administrator account to be added to this role for all farm content databases and the farm configuration databases so that you can manage them from a PowerShell.

In the following procedure, you will first get the GUIDs associated with the content databases.  Then, you will check each content database and the farm configuration database for the accounts that have had the SharePoint_Shell_Access role added to them.  Lastly, you will add the role to the desired account for each database.

Solution
  1. Note down the following information:
    1. The account you used trying to perform the import that resulted in the error (call it User.Account)
    2. The name of the content database containing the site into which you wanted to perform the import (call Content_A).
  2. Login to a SharePoint farm server using the SharePoint Setup User Administrator account.
  3. Launch an elevated instance of the SharePoint 2013 Management Shell.
  4. Execute Get-SPContentDatabase.  This returns a list of all farm content databases, along with summary information and including the database GUID.
  5. Note down the content databases and their GUIDs.
  6. Execute Get-SPShellAdmin <GUID> for each GUID noted in step 5).  This will return a list of all user accounts added to the SharePoint_Shell_Access role for that database.
  7. Note down where the account in step 1) above is missing from the role.
  8. Execute: Get-SPShellAdmin.  This will return a list of all user accounts added to the SharePoint_Shell_Access role for the farm configuration database.
  9. Execute: Add-SPShellAdmin -UserName DOMAIN\User.Account <GUID> for each content database identified in step 5). Executing this command adds this role for both the content database and for the farm configuration database. 
    If you experience an error trying to add this role to that account, perform the steps in this reference.
  10. Repeat step 6) - 8) to verify that the SharePoint_Shell_Access role has now been added to the desired account.
References
Notes
  • If you experience an error trying to add this account to that role, perform the steps in this reference.

SharePoint 2013: How to create a cross-site lookup column using custom site columns

Problem

I needed to create a list-based, work tracking system for my IT team.  This list would need to link to the IT helpdesk ticketing list used by the general user base.  The ticketing list was in a site visible to the general user, while the work tracking list would be in a subsite visible only to the IT team.  Column lookups only work for lists within the same site.  The challenge then was to expose a list as a lookup to a subsite.

This challenge can be resolved by using custom site columns.  Custom site columns created at the site collection level are available to all sites within the site collection. Custom site columns created at the site level are available within that site and within its subsites.

In this walkthrough, I'll create a custom column at the site level, since this column won't be needed outside of the parent site.  This list will then be exposed as a lookup to another list contained within a subsite of the original list.

Procedure
  1. Logged in as a site collection administrator, navigate to the parent site containing the ticket list.
  2. Go: Settings > Site Settings > Web Designer Galleries > Site columns.
  3. Click Create.
  4. Enter a name for the new site column.  For this walkthrough, I'll call it ServiceDeskTickets.
  5. Select Lookup (information already on this site) as the type.
  6. Select a group to categorize this site column or enter a new group name.  For this walkthrough, the group will be Custom Columns.
  7. Configure the next two settings as desired.  Next comes the critical part.
  8. From the Get information from dropdown, select the list you want to expose, in this case the service desk ticket list. 
    If you don't see your desired list here, this is probably because you did not go to the right site before clicking Site columns - or you may be at the root site.  Just cancel out of everything, and then start over. 
    After you make your selection, the page refreshes, updating the various options and data listed in the Additional Column Settings group.
  9. Then from the In this column: dropdown, select the primary field from this list that you want to expose. For my needs, I chose the ticket list ID, since this would lead to a nicely formatted dropdown to select from in the subsite list.
  10. Select any additional list columns that you want to also be exposed to the subsite. 
    You may not see all of the source columns listed here. This is because certain column types cannot be used to create lookup column types. See this reference for additional details on what column types can and can't be exposed in this way.  There are workarounds for still exposing some of these missing columns if you encounter this.
    .
  11. Click OK. 
  12. Navigate to the subsite, and then to the target list in which you want to expose the cross-site lookup.
  13. On the list's LIST ribbon, click List Settings.
  14. Scroll down and then click Add from existing site columns.
  15. From the Select site columns from dropdown, select Custom Columns.
  16. In the Available site columns multi-select box, select ServiceDeskTickets, and then click OK.  The List Information page is displayed again, and you can now see all of the lookup columns that were added to the target list.
    To change the name of any lookup column to something more user-friendly, just click on it.  To change what additional lookup columns will be added, just click on the primary lookup column: this will take you to a page where you can customize what additional lookup columns will be added along with the primary lookup column.
  17. You're done.
References
Notes
  • Many thanks to Bram Nuyts for presenting the original critical steps necessary for implementing cross-site lookup columns.
  • To expose a site list to a sister site or site higher in the site hierarchy, you must expose the source list as a site column configured at the site collection level.
  • Working with Custom Content Types
    • Custom content types added to the target list may not include additional lookup columns that you create later. 
  • Using Additional Columns
    • when you define a site or site collection column based upon a column in an existing list, you have the option of also making other columns available in that list as additional columns.  However, not all list columns will be usable in this way, from my experience.  For example, if you have custom columns, lookup columns, etc in the list, these will not be available (or even visible) when you select additional columns during the site column definition process.  Neither is the Choice column.
    • There appears to be some disconnect within Microsoft articles on this very issue.  If you read the Microsoft article on this topic for 2013, you get one list of columns that can be used as additional columns.  However, if you read the earlier Microsoft article on this topic for 2010, you get a significantly reduced list of columns.  From my experience, Microsoft's 2010 version of this article is the more accurate one.

Wednesday, December 17, 2014

SharePoint 2013: Error loading navigation: TermStore not found - Common solutions

Introduction

In this posting, I present two causes of this problem, that I have experienced, and the solutions I implemented that resolved them.  The two causes involve minor interruptions to network connectivity and server restart.

Network Connectivity Interruptions

Problem

Your network experienced some very minor, very temporary interruptions in service.  Afterwards, some users were unable to connect to the SharePoint 2013 farm and others experienced an error in the global navigation bar:
Error loading navigation: TermStore not found (Correlation ID:...)
Note that a correlation ID appears with this error.  Checking farm health reports, a rule failure of the Security Token Service on WFE2 was found.  However, on investigation, all services were found to be running on this server, and all IIS application pools were found to be started.  Review of the WFE2 error logs found application errors involving claims authentication.  The server was up and IIS and all other services were found to be running.

Solution
  • Restart the SecurityTokenClaimsApplicationPool.
Notes
  • NLB was configured with WFE2 as primary and WFE1 as secondary.  Those users routed to WFE2 experienced failure connecting to the farm, while those routed to WFE1 just experienced the navigation error.  WFE2 eventually recovered partially on its own, but the navigation issue persisted.
  • My sequence of troubleshooting steps for this issue:
    1. Review farm health reports
    2. Review server event logs
    3. Check services on all farm servers
    4. Check application pools on all farm servers
Server Restart

Problem

The farm servers are restarted.  Afterwards, users connecting to their site see the following error message displayed in the global navigation bar:
Error loading navigation: TermStore not found
Note that no correlation ID appears in this case for the error, unlike the earlier example.  Checking farm health reports, you find NO failure of the Security Token service on any any web front end. Checking IIS, you find that all application pools and sites have started.  Checking server services, you find that both FIM service, and the Search (OSearch) and Timer services, are in the stopped state.

Solution
  • Start the Timer service.
Notes
  • None

Monday, December 15, 2014

DocAve 6 Administrator: An error occurred while loading the node. You may not have enough permissions.

Problem

You administer a SharePoint 2013 farm.  You are working in DocAve 6 SP4 Administrator for SharePoint 6.  You want to view the SharePoint topology and are preparing to select the scope in the Scope panel at left.  You click on the top farm heading to expand it, and this reveals all of the web applications in your farm.  Next, you click on one of the web applications to expand it.  When you do this, an error message is displayed:
You also notice that the node does expand, but that not all of the site collections under this node are listed.

This can occur when the DocAve agent service account is not properly mapped to one or more web application content databases.

Solution
  1. Launch SQL Server Management Studio as administrator.
  2. Expand Security\logins.
  3. Double-click the DocAve agent service account.
  4. Select the User Mapping page.
  5. Scroll down the list of databases until you find the web application content databases.
  6. Verify that the DocAve agent service account is mapping as db_owner to each of these.  If it isn't, make it so.
  7. Click OK.
References
Notes
  • None

Tuesday, December 9, 2014

Windows Server 2012: The parameter is incorrect

Problem

You attempt to change the properties of a Windows event log, but every time, after clicking OK, a prompt appears, stating, "The parameter is incorrect."  Though these settings are enabled and editable, they are controlled by GPO.

Solution
  1. On the problematic machine, launch an elevated command prompt.
  2. Execute the command Wevtutil using the appropriate parameters. For example, to set the System log to Overwrite events as needed, you would execute the following:
    wevtutil sl System /rt:false /ab:false
References
Notes
  • The change is implemented immediately.

Thursday, December 4, 2014

SharePoint 2013: how to change the document library URL

Introduction

Sometimes, you want or need to change a document library or list URL.  This can't be done using any feature available through the document library or list Settings page.  It can be done using SharePoint Designer.  This posting shows you how.  This posting is valid whether you are using SharePoint 2007, 2010 or 2013.  The same steps apply.

Procedure
  1. Launch SharePoint Designer.
  2. Connect to the target site.
  3. In the Navigation panel, click All Files.
  4. Scroll down to the list or library.
  5. Right-click the list or library, and then select Rename.
  6. Enter the URL name for the list or library, and then press the ENTER key. 
    Once you press Enter, the URL name will be changed to what you entered, AND the list or library title will also be changed to the same thing.  That's OK: you can change the title later - but don't do it here.
  7. Click on the new  name that you entered.
  8. In the List Information group, look for the Name field, and then click it.
  9. Edit as desired, and then press the ENTER key. 
    Though it states Name, it actually only changes the Title of the list or library.
References
Notes
  • After changing the document library or list URL, it may take a few minutes for this changed to be propogated to your site navigation, whether managed or structural.  Don't worry: you may get Page not Found errors displayed in the browser if you click on the quicklink to the library.  Just wait a minute or two for navigation to be updated throughout the site.

Wednesday, December 3, 2014

SharePoint 2013: Cannot add to the SharePoint_Shell_Access role

Problem

You attempt to add a new SharePoint Management Shell administrator using the Add-SPShellAdmin commandlet, while logged in using an account that is a member of the local Administrator group.  Every time you attempt to run the commandlet, you experience the following error message presented in the shell:
add-spshelladmin
"Cannot add <username> to the SharePoint_Shell_Access role of the database <farm configuration database>.  A possible cause of this error is that the account name was already added to the database as a login using a different user name than the account name."
In SQL Server Management Studio (SSMS), you check the login properties of the account and verify that it is currently mapped as DBO to the database.  Through SSMS, you try to uncheck the role membership, but experience an error.  You use the usual sp_changedbowner procedure, but without success. 

Solution
  1. Run SSMS as administrator.
  2. Right-click on the farm configuration database, and then choose Properties.
  3. Select the Files page.
  4. In the Owner field, change this to sa, and then click OK.
  5. Exit SSMS.
  6. Logon to any SharePoint server using the SharePoint Setup User Administrator account.
  7. Launch a SharePoint Management Shell as administator.
  8. Re-execute the Add-SPShellAdmin commandlet.
References

Monday, December 1, 2014

DocAve 6 Manager for SharePoint 2013: Installation Guide

Introduction

This posting walks through the process of preparing for and installing DocAve 6 Manager for SharePoint 2013.  Preparing for DocAve Manager involves configuring account permissions in three areas: local, SQL and SharePoint; and adding the Web Server Role to the prospective server to be used for hosting DocAve Manager.  This guide presents steps for installing to Windows Server 2012, on Hyper-V 2012, where servers are configured with both external and private networking.

Step 1: Identify Resources
  1. Identify the server that you want to use as the DocAve Manager management server.
  2. Verify that this server meets the following technical requirements:
    1. 54-bit, 4 cores
    2. 4 GB RAM
    3. 60 GB HD
Step 2: Create new domain account for DocAve Manager agent service
  1. Create new domain account for DocAve SharePoint Agent, for example, spDocAve
Step 3: Provision DocAve agent service account
  1. Provision local permissions for account
    1. Add the DocAve agent service account to local Administrators group on each farm server.
  2. Provision SQL Server permissions
    1. Grant dbcreator and securityadmin roles on farm SQL Server
    2. Grant db_owner role on all farm databases
  3. Provision SharePoint permissions
    1. Add to Farm Administrators group
      1. Central Administration > Security > Manage the farm administrators group
    2. Grant Full Control and Operates as System account all web applications
      1. Central Administration > Application Management > Manage Web Applications
    3. Grant Create Personal Site, Follow People and Edit Profile and Use Tags and Notes permissions to the User Profile Service Application.
      1. Central Administration > Application Management > Mange Service Applications > User Profile Service (click on it) > People > Manage User Permissions
    4. Grant Term Store Administrator to Managed Metadata Service
      1. Central Administration > Application Management > Mange Service Applications (select, don't click) > Administrators
    5. Grant Full Control to Search Service application
      1. Central Administration > Manage Service Applications > Search Service (select only) > Administrators
Step 4: Configure Firewall
  1. If your farm has both external and private networks (with private unrestricted), configure exception for port 14000 on external NIC to enable management interface access.
  2. If the farm has only one network, need to configure port exceptions as indicated in DocAve documentation.
Step 5: Configure Server
  1. Roles
    1. Add Web Server (IIS)
      1. Application Development
        1. ASP.NET 3.5
        2. .NET Extensibility 3.5
        3. ISAPI Extensions and ISAPI Filters
      2. Management Tools
        1. IIS Management Console
        2. IIS6 Management Compatability
        3. IIS6 Metabase Compatability
  2. Features
    1. .NET Framework 3.5.1
    2. HTTP Activation
    3. Non-HTTP Activation
    4. WCF Services
    5. TCP Port Sharing (and started)
    6. Common HTTP Features
      1. Static Content
      2. Default Content
    7. PowerShell 2.0 or greater
  3. Services
    1. Windows process Activation Service
      1. Started
      2. Process Model, .NET Environment and Configuration APIs installed
    2. WWW Publishing Service
      1. Started
    3. IIS Admin Service
      1. Started
Step 6: Install DocAve Manager
  1. login to the prospective DocAve management server using the SharePoint Setup User Administrator account (eg, spAdmin).
  2. Download the DocAve Management software (zip), and save locally.
  3. Extract locally.
  4. Right-click Setup.exe and run as administrator.
Step 7: Intall DocAve Agent
  1. Login to a SharePoint farm server using the SharePoint Setup User Administrator account (eg, spAdmin).
  2. Verify that your designated DocAve agent service account has been added to the local Administrators group.  If it's not, add it.
  3. Download the DocAve Management software (zip), and save locally.
  4. Right-click Setup.exe and run as administrator.
Step 8: Setup Administrator Access to DocAve (for NTLM)
  1. Launch the DocAve management interface.
  2. Login (default: admin/admin).
    OOTB, there is a single local administrative account, admin, that enables you to access the DocAve Control Panel. To add domain accounts, you must first configure DocAve to recognize NTLM authentication.
  3. Click a Control Panel link.
  4. In the Authentication Manager group, click Authentication Manager.
  5. On the Ribbon, in the Integration group, click Windows Authentication.
  6. From the Authentication Type dropdown, select NTLM.
  7. Click OK.
  8. On Control Panel, in the Account Manager group, click Account Manager.
  9. On the Ribbon, in the View group, click Users.
  10. On the Ribbon, in the Actions group, click Add User.
  11. From the User Type dropdown, select Windows User/Group Name.
  12. In the Windows User/Group Name box, enter a user account as DOMAIN\UserName.
  13. In the Group area, select the Add user to administrators group radio button.
  14. Click OK.
References
Notes
  • The Installation UI is buggy.  You'll find that if you use the TAB key, the cursor focus can disappear, even when tabbing from one adjacent field to the next.  It's also possible to put the installation wizard into a permanently ambiguous state, from which the only exit is to terminate it and start over.
  • Invalid username/password.  I found that during the intsallation, at the Control Service Configuration panel, after entering the username and password I wanted to use for a new application pool, I kept experiencing invalid username/password errors.  On a hunch, I added the DocAve agent service account to the local Administrators group and then tried again: success. This is mentioned in the DocAve Installation guide at page 23, first sentence.
  • Installation Rule Scanning: Web Server (IIS) Role: Failed.  If you see this rule violation,
    it is likely due to not installing the IIS 6 Management Compatibility and the ASP.NET 3.5 features, which are not default role features installed automatically.  This rule violation will be accompanied by the IIS Admin Service rule violation.  This is because the IIS Admin Service is only installed when IIS 6 compatibility features are installed.  It's easy to check.  Just launch the Add roles and features tool.  Then expand Web Server (IIS) > Web Server > Application Development.  ASP.NET 3.5, ISAPI Extensions and ISAPI Filters won't be installed. Checking the box for ASP.NET 3.5 will automatically also select the other two.  Next, expand Web Server (IIS) > Web Server > Management Tools > IIS 6 Management Compatibility:
    Check the box for IIS 6 Management Compatibility; then complete installation.
  • Page Not Found!!  If you see this when you fire up the DocAve UI for the first time, don't panic. Check the IE Enhanced Security Configuration setting.  If it's enabled, this will block the UI scripts from executing.  Disabled this setting and try again.