Useful SharePoint URLs

This post is to serve as a reference point for all the useful shortcut URLs in SharePoint that help admins and super users get their jobs done much easier.

There are several blog posts by others with these URLs in them, but I wanted to preserve them in my own blog for future generations! Most of these links have come from SharePoint 2010, so if you want them to work in differing versions just add a 14, 15 or 16 after the layouts folder to work in 2010, 2013, 2016 or SharePoint Online.

Frequently used

TitleURL
Remove nav bar, header & command bar ?env=WebView (after .aspx)
Remove nav bar & header?env=Embedded
Open list/ library in Microsoft Lists?env=WebViewList
Site contents/_layouts/15/viewlsts.aspx
/_layouts/15/viewlsts.aspx?view=14 (old style view)
Manage content & structure/_layouts/sitemanager.aspx
Audit log reports /_layouts/Reporting.aspx?Category=Auditing
Shared with us/Shared%20Documents/Forms/AllItems.aspx?view=3

Users and permissions

TitleURL
People/_layouts/people.aspx
Groups/_layouts/groups.aspx
Site Collection Admins /_layouts/mngsiteadmin.aspx
Advanced Permissions /_layouts/user.aspx

Galleries

TitleURL
Site Columns/_layouts/mngfield.aspx
Site content types/_layouts/mngctype.aspx
Web parts/_catalogs/wp/Forms/AllItems.aspx
List templates/_catalogs/lt/Forms/AllItems.aspx
Master Pages/_layouts/ChangeSiteMasterPage.aspx
Themes/_catalogs/theme/Forms/AllItems.aspx
Solutions/_catalogs/solutions/Forms/AllItems.aspx

Site administration

TitleURL
Regional settings/_layouts/regionalsetng.aspx
Content and structure/_Layouts/sitemanager.aspx?Source={WebUrl}_layouts/settings.aspx
Content and structure logs/_Layouts/SiteManager.aspx?lro=all
Site libraries and lists/_layouts/mcontent.aspx
User alerts/_layouts/sitesubs.aspx
RSS/_layouts/siterss.aspx
Search and offline availability/_layouts/srchvis.aspx
Sites and workspaces/_layouts/mngsubwebs.aspx
Workflows/_layouts/wrkmng.aspx
Workflow settings/_layouts/wrksetng.aspx
Related Links scope settings/_layouts/RelLinksScopeSettings.aspx
Content Organizer Settings/_layouts/DocumentRouterSettings.aspx?Source=settings.aspx
Content Organizer Rules/RoutingRules/Group%20by%20Content%20Type.aspx
Site output cache/_Layouts/areacachesettings.aspx
Term store management/_Layouts/termstoremanager.aspx
Taxonomy Hidden List/Lists/TaxonomyHiddenList
Searchable columns/_Layouts/NoCrawlSettings.aspx

Look and feel

TitleURL
Welcome page/_Layouts/AreaWelcomePage.aspx
Title, description and icon/_layouts/prjsetng.aspx
Master page/_Layouts/ChangeSiteMasterPage.aspx
Page layouts and site templates/_Layouts/ChangeSiteMasterPage.aspx
Tree view/_layouts/navoptions.aspx
Site theme/_layouts/themeweb.aspx
Navigation/_layouts/AreaNavigationSettings.aspx

Site actions

TitleURL
Manage site features/_layouts/ManageFeatures.aspx
Reset to site definition/_layouts/reghost.aspx
Delete this site/_layouts/deleteweb.aspx
Site web analytics reports/_layouts/WebAnalytics/Report.aspx?t=SummaryReport&l=s
Site collection web analytics reports/_layouts/WebAnalytics/Report.aspx?t=SummaryReport&l=sc

Site collection administration

TitleURL
Search settings/_layouts/enhancedSearch.aspx
Search scopes/_layouts/viewscopes.aspx
Search keywords/_layouts/listkeywords.aspx
Site level recycle bin/_layouts/RecycleBin.aspx
Site collection recycle bin/_layouts/AdminRecycleBin.aspx
Site collection features/_layouts/ManageFeatures.aspx?Scope=Site
Site directory settings/_layouts/SiteDirectorySettings.aspx
Site hierarchy/_layouts/vsubwebs.aspx
Site collection navigation/_layouts/SiteNavigationSettings.aspx
Site collection audit settings/_layouts/AuditSettings.aspx
Audit log reports/_layouts/Reporting.aspx?Category=Auditing
Portal site connection/_layouts/portal.aspx
Site collection policies/_layouts/Policylist.aspx
Storage Metrics/_layouts/storman.aspx
Record declaration settings/_layouts/InPlaceRecordsSettings.aspx?Source=settings.aspx
Content type publishing/_Layouts/contenttypesyndicationhubs.aspx
Site collection cache profiles/_Layouts/RedirectPage.aspx?Target={SiteCollectionUrl}cache profiles
Site collection object cache/_Layouts/objectcachesettings.aspx
Content type service application error log/Lists/ContentTypeAppLog
Site collection output cache/_Layouts/sitecachesettings.aspx
Variations/_Layouts/VariationSettings.aspx
Variation labels/_Layouts/VariationLabels.aspx
Translatable columns/_Layouts/TranslatableSettings.aspx
Variation logs/_Layouts/VariationLogs.aspx
Suggested Content Browser Locations/PublishedLinks/
Document ID settings/_Layouts/DocIdSettings.aspx
SharePoint Designer Settings/_layouts/SharePointDesignerSettings.aspx
Visual Upgrade/_layouts/suppux.aspx
Help settings/_layouts/HelpSettings.aspx

Central administration

TitleURL
Manage web applications/_admin/WebApplicationList.aspx
Create site collections/_admin/createsite.aspx
Manage service applications/_admin/ServiceApplications.aspx
Manage content databases/_admin/CNTDBADM.aspx
Check job status/_admin/Timer.aspx
Manage farm administrators group/_layouts/people.aspx?MembershipGroupId=3
Configure service accounts/_admin/FarmCredentialManagement.aspx
Configure send to connections/_admin/OfficialFileAdmin.aspx
Configure content deployment paths and jobs/_admin/Deployment.aspx
Manage form templates_admin/ManageFormTemplates.aspx
Manage servers in farm/_admin/FarmServers.aspx
Manage services on server/_admin/Server.aspx
Manage farm features/_admin/ManageFarmFeatures.aspx
Configure alternate access mappings/_admin/AlternateUrlCollections.aspx
Perform a backup/_admin/Backup.aspx
Restore from backup/_admin/BackupHistory.aspx?restore=1&filter=1
Perform site collection backup/_admin/SiteCollectionBackup.aspx
Convert farm license type/_admin/Conversion.aspx
Check product and patch installation status/_admin/PatchStatus.aspx
Check upgrade status/_admin/UpgradeStatus.aspx

Common actions

TitleURL
Create new_layouts/spscreate.aspx
_layouts/create.aspx
View lists_layouts/viewlsts.aspx
Create site groups _layouts/permsetup.aspx
Quick launch_layouts/quiklnch.aspx
Workflow history list/lists/Workflow History
SharePoint server version + patch level/_vti_pvt/Service.cnf (run at site collection level)
Web part maintenance mode?Contents=1 (classic)
?maintenancemode=true (modern)
Save as site template_layouts/savetmpl.aspx
Manage user alerts_layouts/AlertsAdmin.aspx

REST API examples

OperationSharePoint REST API endpoint
Site
Get a SharePoint Site Collectionhttps://%5Byour site url]/_api/site
Get a specific site or webhttps://%5Byour site url]/_api/web
Get a sites titlehttps://%5Byour site url]/_api/title
List
Get all lists from a sitehttps://%5Byour site url]/_api/web/lists
Get all items from a listhttps://%5Byour site url]/_api/web/lists/getbytitle(‘listname’)/items
Get a lists titlehttps://%5Byour site url]/_api/web/lists/getbytitle(‘listname’)?select=Title
Get all columns within a listhttps://%5Byour site url]/_api/web/lists/getbytitle(‘listname’)/Fields
Get list from GUIDhttps://%5Byour site ur]}/_api/Web/Lists(‘list GUID here’)
Get list item by IDhttps://%5Byour site ur]}/_api/Web/Lists/GetByTitle/(‘listtitle’)/GetItemById(2)
Get selected fields for list itemshttps://%5Byour site ur]}/_api/Web/Lists/GetByTitle/(‘listtitle’)/Items?select=ID,Title
User
Get current user informationhttps://%5Byour site url]/_api/web/currentUser
Get all site usershttps://%5Byour site url]/_api/Web/siteusers
Group
Get all groups from the sitehttps://%5Byour site url]/_api/Web/siteusers/sitegroups
Get group by group IDhttps://%5Byour site url]/_api/Web/sitegroups/GetById(GroupId)
Get all users from grouphttps://%5Byour site url]/_api/Web/sitegroups(Id)/users
Source: SP guides

Problems creating list or library views based on created date

The situation

Data retention and deletion…I’m sure this is a something that anyone involved in Office 365, SharePoint on information management in general gets fed up of saying since the recent GDPR legislation!

Recently we have been rationalising and cleaning up our data in preparation for moving to Office 365. We are starting with SharePoint as the first target repository or silo of content.

The general consensus is to delete files and folders over 7 years old unless there is a pre-existing data retention policy to adhere to. So the next task is to identify those files that fall within our threshold, and ultimately delete.

Luckily, we have Tree Size Pro and ShareGate so I was able to relatively easily identify the files in question (there were a lot!).

The setup

As our SharePoint environment is a) rather full; and b) rather old, I made the decision to incrementally delete files rather than en-masse to mitigate risk, targeting the lists/libraries containing the most out of date content. I started by creating a view in the first library – library A with the following parameters:

  • Standard library view
  • Filtered by Created Date if less than or equal to 01/01/2011
  • Folders or Flat: Show items inside folders
    Show this view: In all folders

(all other settings are left default)

Results this returned looked good, I could see folders and files in this view that matched the criteria – brilliant! Based on my previous statement I decided to delete in batches out of working hours, again to mitigate risk. I deleted first from library A, then from the first stage and finally from the second stage recycle bin all in this fashion.

The problem

I had permanently deleted around 50% of the total volume of content to be deleted from library A when we started to receive reports of current files being ‘missing’ from library A…not a good day.

After these reports were investigated they were indeed true. It turns out that when folders are included within a library view, folders that match the filter will be shown in the view, regardless of whether the files inside match.

We tested the view exluding folders and all the files returned matched the filter criteria. The same results were demonstrated from a SharGate report of the same nature. The report of all files over 7 years old brought back folders over 7 years old, but they also contained files that were newer.

Conclusion

At present, we are not entirely sure as to why these filters are not able to drill down past a top-level folder. It appears to be difficult to specify via view settings to only show files within folders, including the folder itself that matches the criteria.

We have decided to omitt folders from our reports and views going forward and to solely focus on files as this is the most reliable way we can delete files.

Bonus: for those of you with ShareGate, heres an example of my report we created to bring back all files over 7 years old, excluding folders. I ran this report across the entire intranet application over a weekend and it worked a treat 🙂

SG-report

File naming restrictions in SharePoint

This post is a reference point for all the restrictions and limitations around the restrictions that apply to file names and file types in SharePoint and OneDrive.

When uploading files into SharePoint or OneDrive that are subject to any of the restrictions, you may receive an error similar to something like this:

filename-error

What are the restrictions?

Restrictions have become more difficult to untangle in Microsoft 365 with SharePoint and OneDrive, plus the ability to sync. The key takeaway is that the entire decoded file path, including the file name can’t contain more than 400 characters. This limit applies to the combination of the folder path + file name after decoding:

  • The entire decoded path can’t contain more than 400 characters
  • File uploads cannot exceed 250GB
  • You can’t share more than 50,000 items
  • You can’t copy or move more than 100GB in total, no more than 30,000 files and each file must be less than 15GB

Invalid characters, file or folder names

  • ” * : < > ? / \ | all aren’t allowed in file or folder names, plus leading or trailing spaces
  • # & are supported and can be enabled in the SharePoint admin center
  • .lockCONPRNAUXNULCOM0 – COM9LPT0 – LPT9_vti_desktop.ini, any filename starting with ~$. are not allowed for files or folders
  • forms” isn’t supported when the folder is at the root level for a library
  • You can’t create a folder name in SharePoint that begins with a tilde (~)

Blocked file types

  • There are currently no known types of files that cannot be added to a list or library in SharePoint Online. Custom scripting must be allowed for custom script file extensions to be work
  • Temporary TMP files will not be synced to OneDrive
  • Files that are used by your local computer, such as desktop.ini on Windows or .ds_store on macOS, don’t normally sync
  • Outlook .PST files are supported, however they are synced less frequently compared to other file types to reduce network traffic

File uploads, names and path length

  • The file size limit for uploads is 250GB
  • Each segment of a path cant exceed 255 characters if files are synced to a PC or Mac
  • The length of the root folder in OneDrive, or synced SharePoint library, plus the relative path of the file (up to 400 characters) cannot exceed 520 characters
  • In SharePoint Server, the entire path of files can’t exceed 260 characters
  • Thumbnails are not generated for images larger than 100 MB
  • PDF previews are not generated for files larger than 100 MB

Sharing

  • There is a limit of 50,000 items that can be shared within a folder and any sub-folders
  • You can’t synchronize the Shared with me view grouping of files from a OneDrive for work or school site

Syncing, copying or moving files

  • Although SharePoint Online can store 30 million documents per library, for optimum performance Microsoft recommend syncing no more than 300,000 files across all document libraries. Additionally, performance issues can occur if you have 300,000 items or more across all libraries you are syncing, even if you are not syncing all items in those libraries.
  • If you use the previous OneDrive for Business sync client (Groove.exe), the sync limit per library is 20,000 items (including 5,000 items per team site)
  • Differential sync is possible for Microsoft Office files in the new file format, .docx, .pptx, .xlsx
  • You cannot copy or move more than 100 GB of the total file size
  • You cannot copy or move more than 30,000 files
  • Each file being copied/ moved must be less than 15 GB
  • SharePoint libraries/ lists can hold 50,000 major versions and 511 minor versions
  • When using onedrive.com, you can only copy up to 2500 files at one time

How it used to be – restrictions in SharePoint Sever

Here are some, more specific restrcitions again applying to site collections, sub-sites, libraries or lists:

  • Can’t be longer than 128 characters
  • Can’t use: ~ # % & * { } \ : < > ? / + | ”
  • Can’t use: ~ ” # % & * : < > ? / \ { | }. in SharePoint 2013
  • Can’t use the period character consecutively in the middle of a file name (blah…blah.docx)
  • Can’t use the period character at the end of a file name
  • Can’t use the period character at the start of a file name
  • Can’t end with:

    .files

    _files
    -Dateien

    _fichiers

    _bestanden

    _file

    _archivos

    -filer

    _tiedostot

    _pliki

    _soubory

    _elemei

    _ficheiros

    _arquivos

    _dosyalar

    _datoteke

    _fitxers

    _failid

    _fails

    _bylos

    _fajlovi

References

https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file – Names, paths and namespaces by Microsoft

http://www.sysadminsblog.com/microsoft/file-name-length-and-character-restrictions-for-sharepoint/  – Original write up by Mischa Oudhof of Sysadminblog.com

SharePoint and Nintex workflows failing on start after .NET security update

Updated


I’ve wrote part two on this issue with my full resolution steps here:

SharePoint and Nintex workflows failing on start – part two


The problem


I had this issue myself in the last week where EVERY SINGLE workflow across the farm on premise stopped working. SharePoint Designer and Nintex workflows all reported “Failed to start” when triggered to run.

The workflows stopped working due to a series of .NET security updates Microsoft released in September 2018. Microsoft released a public KB article on this – with resolution steps which can be found below:

But also this msdn blog post contains all the solution scripts and steps that includes Nintex workflows also (transcript below):

I noticed shortly after the fix was implemented that some of my SharePoint designer workflows were exhibiting odd behaviour. For example the screenshot below shows a SharePoint desinger workflow that previously worked without issue or errors in the history after the fix was applied:

Someone on reddit had already spotted this which drew my attention to the common issue, this only presents itself for workflows with pause steps!

I will update this post with my findings once this latest fix is applied.

Symptom

After applying .NET Security Only patch to resolve CVE-2018-8421 (Remote Code Execution Vulnerability) , all SharePoint out of the box Workflows fail to execute and the log will show an error like this:

09/13/2018 01:59:07.57 w3wp.exe (0x1868) 0x22FC SharePoint Foundation Workflow Infrastructure 72fs Unexpected RunWorkflow: Microsoft.SharePoint.SPException: <Error><CompilerError Line=”-1″ Column=”-1″ Text=”Type System.CodeDom.CodeBinaryOperatorExpression is not marked as authorized in the application configuration file.” /><CompilerError Line=”-1″ Column=”-1″ Text=”Type System.CodeDom.CodeBinaryOperatorExpression is not marked as authorized in the application configuration file.” /><CompilerError Line=”-1″ Column=”-1″ Text=”Type System.CodeDom.CodeBinaryOperatorExpression is not marked as authorized in the application configuration file.” /><CompilerError Line=”-1″ Column=”-1″ Text=”Type System.CodeDom.CodeBinaryOperatorExpression is not marked as authorized in the application configuration file.” /><CompilerError Line=”-1″ Column=”-1″ Text=”Type System.CodeDom.CodeBinaryOperatorExpression is not marked as authorized in the application configuration file.” /><CompilerError Line=”-1″ Column=”-1″ Text=”Type System.CodeDom.CodeBinaryOperatorExpression is not marked as authorized in the application configuration file.” /><CompilerError Line=”-1″ Column=”-1″ Text=”Type System.CodeDom.CodeBinaryOperatorExpression is not marked as authorized in the application configuration file.” /><CompilerError Line=”-1″ Column=”-1″…

The error suggest that System.CodeDom.CodeBinaryOperatorExpression is not in the authorized types.

Cause

Workflow Foundation (WF) will only run workflows when all the dependent types and assemblies are authorized in the .NET config file (or added explicitly via code) under this tree:

<configuration>

<System.Workflow.ComponentModel.WorkflowCompiler>

<authorizedTypes>

<targetFx>

However, after the update, the following lines are necessary for SharePoint 2013 and beyond:

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeBinaryOperatorExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodePrimitiveExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeMethodInvokeExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeMethodReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeFieldReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeThisReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodePropertyReferenceExpression” Authorized=”True” />

And for SharePoint 2007 and 2010, use these lines:

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeBinaryOperatorExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodePrimitiveExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeMethodInvokeExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeMethodReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeFieldReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeThisReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodePropertyReferenceExpression” Authorized=”True” />

Solution

The solution is to add explicitly the types to all web applications’ web.config:

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeBinaryOperatorExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodePrimitiveExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeMethodInvokeExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeMethodReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeFieldReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeThisReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodePropertyReferenceExpression” Authorized=”True” />

Or (for SharePoint 2007 and 2010):

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeBinaryOperatorExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodePrimitiveExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeMethodInvokeExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeMethodReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeFieldReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeThisReferenceExpression” Authorized=”True” />

<authorizedType Assembly=”System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodePropertyReferenceExpression” Authorized=”True” />

Please notice that sometimes SharePoint Timer Service (SPTimerV4) runs workflows. If you notice that the application showing the error is ULS logs in OWSTIMER.EXE, you should also include the authorized types in [SharePoint Hive Folder]\bin\OWSTIMER.EXE.config. The Hive Folder will change by version of SharePoint. For SharePoint 2016, it is normally at c:\program files\common files\microsoft shared\web server extensions\16. For 2013, at c:\program files\common files\microsoft shared\web server extensions\15.

Additional Information

My colleague Joe Rodgers, who is Sr. PFE, put together this PowerShell script: https://gist.github.com/joerodgers/2302b394796c865818839d843bae2dad

There are two scripts. Normally, the only necessary script is:

Add-CodeDomAuthorizedType.ps1

Uncomment this line to make the changes:

Add-CodeDomAuthorizedType

If you have Nintex workflows you should run like this:

Add-CodeDomAuthorizedType -IncludeNintexWorkflow

To undo the changes, run:

Remove-CodeDomAuthorizedType

The script needs to run only once on any WFE. All web.config files related to SharePoint on all servers will be modified. New web applications created after that will also include the changes. Even if a new WFE is added to the farm, the entries will also be included in web.config. The change is a permanent requirement from now on since the WF patch. You do not need to undo the change before applying the SharePoint patch addressing it.

There is a second script to update OWSTIMER.exe.config. This one should only run if you see the symptoms in ULS logs with process OWSTIMER.EXE. Otherwise, you do not need to update. if you have the problem though, you need to rerun the script if a new machine is added to the farm. No line needs to be uncommented for this one. The script name is:

Add-CodeDomAuthorizedTypeToOWSTimerConfig.ps1

Note

Microsoft is aware of this issue and patches for SharePoint 2010, 2013 and 2016 are being worked as of 9/17/2018. I will update when we have an ETA. I had confirmation from the product team on 9/18/2018 that this information and solution on this post is in the line with the future patch and it is the recommended action plan until the patch is out. If anything change, I will update the post.

Note 2

Some people using third-party workflows (like Nintex) need to also include this:

<authorizedType Assembly=”System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ NameSpace=”System.CodeDom” TypeName=”CodeTypeReferenceExpression” Authorized=”True” />

Using the script, you need to add to the line defining types (line 24):

CodeTypeReferenceExpression

Example:
$typeNames = @( CodeBinaryOperatorExpression, CodePrimitiveExpression, CodeMethodInvokeExpression, CodeMethodReferenceExpression, CodeFieldReferenceExpression,CodeThisReferenceExpression, CodePropertyReferenceExpression“, “CodeTypeReferenceExpression”)

Note 3

Joe updated his script to add a switch for Nintex workflows.

Call this way to include the extra type required by Nintex:

Add-CodeDomAuthorizedType -IncludeNintexWorkflow

(all credit to Rodney Viana for this information)

Hide a SharePoint list or library from view all site contents

Have you ever been asked to hide a list or library from a SharePoint site? If so, you go straight for selecting ‘no’ to displaying the list or library on the Quick Launch or removing it from the navigation. However, your eagle eyed users notice the handy view all site contents option and see that it is still listed there – they want it gone!

Luckily, all you need is SharePoint Designer and it is as simple as a click of a button…

(These steps were created using SharePoint Server 2010)

  • Open the site that where list or library resides in SharePoint Designer
  • Under Lists and Libraries – Select the list or library you wish to hide
  • On the main list settings page – find the Settings section
    SPD
  • Check the Hide from browser option
    hidefrombrowser

Thats it! when you option the view all site content page now, that list or library will no longer be showing. Also, if you want to re-instate it at a later date, just un-check the box and it will re-appear.

This also works for SharePoint 2013, 2016 and SharePoint Online, under the site contents page.

Fun with PowerApps part 3: my first PowerApp

This is part three in my fun with PowerApps series where I’ll go through my personal experience of creating a new PowerApp from scratch and go through step-by-step for each part of the process…

You can read all parts of this series below:

Part 1: setting up the default gateway
Part 2: creating a data connection

Carrying on from my last post – creating a data connection, we are now good to go and begin to build our first PowerApp!

Just like setting up the data connection, creating a PowerApp can be a really simple thing to do.

However, I’ve found either creating a PowerApp from the SharePoint list or library is really quick and easy, but it doesn’t necessarily give you the most flexibility when it comes to wanting to do it your own way…

Creating a PowerApp

You can create a PowerApp from a list or library literally from the push of a button! Its as simple as:

  • Create your list or library, add all the associated columns and data you wish to be displayed in your PowerApp
  • Press the ‘PowerApps’ button on the list menu, then press ‘Create an app’

  • You’ll then be prompted to create your app, start by giving it a name and press ‘Create

After a few moments your app will be created! It will open in the PowerApps web editor and you should see your list columns and data displaying in your shiny new PowerApp!


You can also take a look at the app in the preview to get a good look at how it operates and how the data is displayed…

Conclusion…

That’s it! Your all set…but if you’re like me you’ll have some questions. Like, what if I want a desktop app and not a mobile one?

Well for that you’ll need to build an app from scratch, I’ll be going over creating a new PowerApp in the next part of this series so hold on as i’ll be posted the next part very soon!

Fun with PowerApps part 2: creating a new data connection

This is part two in my fun with PowerApps series where I’ll go through my personal experience of creating a brand new PowerApp from scratch and go through step-by-step for each part of the process…

You can read part 1 of this series below:

Part 1: setting up the default gateway

Continuing on from my previous post – setting up the default gateway, we should now be in a position to create a new data connection within PowerApps. On the surface this is pretty easy to do, all that’s needed is to choose the connection type – press create – authenticate – job done!

However, when we need to create a data connection for an on premise SharePoint environment, its a little bit of a different story. Here are the steps involved for setting up a new data connection for a SharePoint on premise environment:

  1. Go to web.powerapps.com
  2. Under Connections – press New Connection

  3. In the search bar, search for “SharePoint” – press the plus icon

  4. The SharePoint data connection popup box should appear, under “how do you want to connect to your data?” select Connect using on-premises data gateway
  5. Set the authentication type to Windows and then specify your username and password (you may need to include a domain name as part of the username)
  6. I used credentials of a user that had owner permissions for the SharePoint environment I connected to, it makes sense to me that the account you specify here would at the very least need to be able to read/write to the SharePoint list that acts as the data source.

  7. Choose the gateway we set up in part 1 of this series, if you can’t see it you might need to install it again or refresh the list until it displays.
  8. I actually had to create the default gateway using a different account than the one I created my first PowerApp with, so it wouldn’t show for me initially. I had to share the gateway I created and set my PowerApps user as an admin for it to show in this list.

  9. Press Save

You will now see your newly created data connection appearing in the connections list! Your able to edit and delete the data connection at any point and can also check who the owner is, the connection name and crucially the status of the connection under the details button.

BONUS

There is also this article from Microsoft talking through connecting to SharePoint from PowerApps that lists the known issues with certain column types:

https://docs.microsoft.com/en-us/powerapps/connections/connection-sharepoint-online

Configuring outgoing email SharePoint 2016

One of the first things a user may ask their shiny, new SharePoint 2016 site collection to do is to have the ability to send email. Luckily, this is pretty easy to do and will just rely on you getting to grips with a few things about SMTP server:

  • SMTP server address
  • SMTP server port number

If you don’t know either of these, then it might be worth getting friendly with your system admins as they should be able to help! To start configuring outgoing email in SharePoint 2016, we need to set it up at the central admin level:

  • Navigate to central admin – system settings
  • Under Email and Text Messages – Configure outgoing email settings
  • In Outgoing email settings – enter your SMTP server information, from, reply-to address and press OK

Now your SharePoint environment should be configured to send outgoing email, next we will check that outgoing email is set up correctly at the web application level:

  • Navigate back to Central Admin – under Application Management – Manage web applications
  • Select the web application you wish to manage
  • Press the General Settings drop down – Outgoing email

Check that SMTP server details are correct (based on the farm level configuration we did earlier), you can also personalise the from and reply-to addresses for the web application if you want them to be different to the top-level.

BONUS

One issue I’ve encountered when configuring outgoing email in SharePoint 2016 is where lists or libraries aren’t sending email alerts. The initial email is sent when alerts are setup, but the subsequent email alerts don’t fire.

The issue quite a specific one but worth mentioning, as at first I applied this security update which included an update for outgoing email, but didn’t solve the problem. It turned out that in Exchange Server, if anonymous Relay settings isn’t enabled, then your SharePoint servers need to be added to the allowed hosts relay list. So back to my earlier point, if this issue affects you – make sure you take your system admin to lunch to pick his brain about exchange relays!