Home

Changing the "Allow members to share" SharePoint site Access Requests setting using Office Dev PnP

Harold van de Kamp
Contributor

Changing the "Allow members to share" SharePoint s...

How can I set the "Allow members to share the site and individual files and folders" setting using the Office Dev PnP Provisioning Engine or PowerShell commands? I haven't found this specific setting in the commands.

 

I mean changing the following setting(s) by PowerShell / remote provisioning:

Access Requests Allow members to share.png

6 Replies

Re: Changing the "Allow members to share" SharePoi...

Hello Harold, 

 

Are you using SPO? This url might point you in the right direction regarding changing the setting programatically for SharePoint online: 

https://blogs.msdn.microsoft.com/chandru/2015/12/31/sharepoint-onlinecsom-change-access-requests-set... (there is a comment with a suggestion to how this can be removed with powershell)

 

I have just started looking into this, so haven't tested this myself yet. 


Let me know when you find a way to have this setting un-checked during site provisioning with PnP Provisioning Engine, as I am currently searching for that myself.

 

Re: Changing the "Allow members to share" SharePoi...

You can use this script. You need to install CSOM module Version 16.1.4727.1200 and above to use this. 

 

$SiteUrl = "https://<TenantName>.sharepoint.com/sites/<Sitename>"  
$UserName = "admin@<TenantName>..onmicrosoft.com"  
$Password ="password"
$loadInfo1 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client") 
$loadInfo2 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
$loadInfo3 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.UserProfiles")
#$sstr = ConvertTo-SecureString -string $AdminPass -AsPlainText -Force
$Securepass = ConvertTo-SecureString $Password -AsPlainText -Force
$context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteUrl)
$context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,$Securepass)
$Web = $context.Web
$AllProperties=$Web.AllProperties
$context.Load($Web)
$context.Load($AllProperties)
$context.ExecuteQuery()
$Web.MembersCanShare=$false
$web.Update();
$web.Context.ExecuteQuery()
$AssociatedMember=$web.AssociatedMemberGroup
$context.Load($AssociatedMember)
$context.ExecuteQuery()
$web.AssociatedMemberGroup.AllowMembersEditMembership = $false
$web.AssociatedMemberGroup.Update();
$web.Context.ExecuteQuery() 
Highlighted

Re: Changing the "Allow members to share" SharePoi...

I created a extention for that:

  try
                {
                    Web rootweb = ctx.Site.RootWeb;
                    ctx.Load(rootweb, w => w.MembersCanShare);
                    ctx.ExecuteQueryRetry();
                    SharingConfiguration sharingSettings = configurationData.ToConfigObject<SharingConfiguration>();
                    // Set MembersCanShare, default to false

                    rootweb.MembersCanShare = sharingSettings.Sharing.MembersCanShare ? sharingSettings.Sharing.MembersCanShare : false;
                    rootweb.Update();
                    ctx.Load(rootweb, w => w.AssociatedMemberGroup.AllowMembersEditMembership);
                    ctx.ExecuteQueryRetry();

                    // Set AllowMembersEditMembership, default to false
                    rootweb.AssociatedMemberGroup.AllowMembersEditMembership = sharingSettings.Sharing.AllowMembersEditMembership ? sharingSettings.Sharing.AllowMembersEditMembership : false;
                    rootweb.AssociatedMemberGroup.Update();
                    ctx.ExecuteQueryRetry();

                    ctx.Load(rootweb, w => w.RequestAccessEmail);
                    ctx.ExecuteQueryRetry();

                    rootweb.RequestAccessEmail = sharingSettings.Sharing.RequestAccessEmail;
                    rootweb.Update();
                    ctx.ExecuteQueryRetry();
                }
                catch (Exception ex)
                {
                    TraceHelper.WriteErrorToListener("LogFile", ex.Message);
                }

Re: Changing the "Allow members to share" SharePoi...

Great replies of you all. Thanks! I'm sure I'll be able to generate a solution using your input next week. I'll update when I got it working.

Re: Changing the "Allow members to share" SharePoi...

Is this for SharePoint On-Line or SharePoint On-Premises ? Or Both ?

Re: Changing the "Allow members to share" SharePoi...

Hi Nigel,

 

my example could be used for both..

 

Kr,

 

Paul

Related Conversations
MyAnalytics Outlook Add-In update rolling out!
Nick Robinson  in  MyAnalytics  on
4 Replies
Announcement: New OneDrive Admin Center Preview
Stephen Rose  in  OneDrive for Business  on
110 Replies
No Team Channel Notifications
Jake Baldwin  in  Microsoft Teams  on
44 Replies
Manage automatic creation of direct reports group
Scott Johnson  in  Office 365 Groups  on
100 Replies
Where Does End-User Adoption Start?
Anna Chu  in  Driving Adoption  on
11 Replies