Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Set-PnPUserProfileProperty : Access denied. You do not have permission to perform #277

Closed
1 of 6 tasks
thuld opened this issue Feb 15, 2021 · 111 comments
Closed
1 of 6 tasks
Assignees
Labels
bug Something isn't working reproduced Issue reproduced after testing support looking into it Microsoft Support is looking into the server side of this issue

Comments

@thuld
Copy link

thuld commented Feb 15, 2021

Please see also related discussion Can Get nut can't Set with pnp.powershell

Expected behavior

Cmdlet Set-PnPUserProfileProperty allows to update of user-profile properties

Actual behavior

Error is raised:

Set-PnPUserProfileProperty : Access denied. You do not have permission to perform this action or access this resource.
At line:1 char:1
+ Set-PnPUserProfileProperty -Account 'test@foobar.com ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (:) [Set-PnPUserProfileProperty], ServerUnauthorizedAccessException
    + FullyQualifiedErrorId : EXCEPTION,PnP.PowerShell.Commands.UserProfiles.SetUserProfileProperty

Steps to reproduce behavior

  1. Connect SharePoint Online
  2. Run following code: Set-PnPUserProfileProperty -Account 'test@foobar.com' -PropertyName 'WorkPhone' -Value '0123456789'

What is the version of the Cmdlet module you are running?

Manifest 1.3.0 PnP.PowerShell {Add-PnPAlert, Add-PnPApp, Add-PnPApplicationCustomizer, Add-PnPContentType...}

Which operating system/environment are you running PnP PowerShell on?

  • Windows
  • Linux
  • MacOS
  • Azure Cloud Shell
  • Azure Functions
  • Other : please specify
@thuld thuld added the bug Something isn't working label Feb 15, 2021
@BaronSparky
Copy link
Contributor

How did you connect to SPO? i.e. which switch on the "Connect-PnPOnline"?

I have noticed a similar issue this morning, i.e. "Access denied." when using the "-UseWebLogin" or "-Interactive" arguments. However, when I connected via "-Credentials" on the "Connect-PnPOnline", it worked.

Perhaps the issue is with the Connect-PnPOnline cmdlet.

@erwinvanhunen
Copy link
Member

The issue is most likely connected to the registration of the PnP Management Shell application that is in place in your Azure AD. Run Register-PnPManagementShellApplication again, it will change the granted permissions: we added the userprofile readwrite right there like 2 weeks ago (it used to be only read access).

@thuld
Copy link
Author

thuld commented Feb 16, 2021

I am using the following approach to connect to SharePoint Online:

Connect-PnPOnline -Url 'https://foobar4com-admin.sharepoint.com' -Interactive

@erwinvanhunen We registered the application yesterday and the permissions of this application seems ok:

image

Update: I have now executed Register-PnPManagementShellAccess and then created a new connection, but the error is the same.

@BaronSparky
Copy link
Contributor

The same for me also...

@erwinvanhunen
Copy link
Member

erwinvanhunen commented Feb 16, 2021

I just tested and indeed it doesn't work with a bearer token (which is what we use by default). It seems that that is not (more?) supported. We'll investigate that. I noticed that if you use -UseWebLogin (which is cookie based auth) it does work.

I'll leave this issue open while we investigate.

@erwinvanhunen erwinvanhunen self-assigned this Feb 16, 2021
@github-actions
Copy link

github-actions bot commented Mar 4, 2021

This issue is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 5 days

@Geo-Ron
Copy link

Geo-Ron commented Mar 16, 2021

@erwinvanhunen Is there any progress on this?

@SebasT87
Copy link

SebasT87 commented Mar 26, 2021

Same problem here, hoping for a quick fix.
As a workaround i did a rollback to the former SharepointPnP.

@barkerboy8
Copy link

I'm having the same issue - when will this be fixed?

@Markarend
Copy link

Markarend commented Mar 30, 2021

Here are a couple of possible clues, though I still get the same error behavior discussed in this issue.

Accessing SharePoint using an application context, also known as app-only says "User Profile CSOM write operations do not work with Azure AD application - read operations work. Both read and write operations work through SharePoint App-Only principal". Then Granting access using SharePoint App-Only gives instructions for setting that up. I was feeling pretty good when I found this, but then when I tested, still "Access denied. You do not have permission to perform this action or access this resource. Microsoft.SharePoint.Client.ServerUnauthorizedAccessException, ServerErrorCode : -2147024891, ServerErrorTypeName : System.UnauthorizedAccessException".

Another possible clue is that Granting access using SharePoint App-Only shows -AppId and -AppSecret parameters for Connect-PnPOnline, but the current version (1.3.0?) doesn't provide those parameters, only -ClientId and -ClientSecret.

Is there a PnP core version I can test with that provides -AppId and -AppSecret?

@Markarend
Copy link

@SebasT87 what version of SharePointPnP are you using as a workaround?

@SebasT87
Copy link

@SebasT87 what version of SharePointPnP are you using as a workaround?

That would be SharePointPnPPowerShellOnline to be exact. Which can be installed using:
Install-Module SharePointPnPPowerShellOnline

@veronicageek
Copy link
Collaborator

@Markarend

My customer needs a fix for this!

I'd like to remind you that this repo is community driven, from people contributing on their own personal time. So please be patient as we may also have unforeseen priorities.

@Markarend
Copy link

@veronicageek, my apologies for seeming demanding, the exclamation point is a bit overused these days! I absolutely appreciate everyone's supporting each other, and I'll post something if I find an answer. I'm trying some things in this article now: https://dev.to/svarukala/introducing-the-new-pnp-powershell-based-on-net-core-3-1-and-learn-how-it-s-authentication-works-pn7.

@Markarend
Copy link

Can anyone share what Connect-PnPOnline parameter set and values to use to authenticate from an Azure Function App so the script can write User Profile properties without requiring an interactive login?

I used Register-PnPManagementShellAccess successfully and it appears to be configured correctly. But I'm unsure how to tell Connect-PnPOnline to use the PnP Management Shell app that it installs, except with -Interactive which only works locally, not from an Azure Function App.

Also tried these approaches to no avail. All can read SP profile properties but none can write:
Connect-PnPOnline docs Example 6 (why doesn't this work if the app has SharePoint | User.ReadWrite.All | Application | Read and write user profiles?)

Granting access using SharePoint App-Only (may be deprecated, but moot because it doesn't work though it says it should for this specific scenario)

Many thanks

@Markarend
Copy link

Markarend commented Apr 2, 2021

ONE SOLUTION

Finally found a way to authenticate to SharePoint online to write profile properties without an interactive/user logon, that works from Azure function app. Unfortunately it uses ACS which is retired now but explicitly still supported for SharePoint use. So it's not my preferred approach, but as it actually works, it's better than all other approaches so far.

The key is to follow this article Granting access using SharePoint App-Only, but to add the scope /sharepoint/social/tenant. Update the Permission Request XML as follows, and it will permit writing user profile properties.

<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
  <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="FullControl" />
</AppPermissionRequests>

Still looking for a more "modern" approach that's not just supported as a waiver from a retired approach. Many thanks to all!

@patrickTimmerman
Copy link

Hello, Is there an ETA on this Bug when it will be resolved ?

@ToddKlindt
Copy link
Contributor

Hello, Is there an ETA on this Bug when it will be resolved ?

Like @veronicageek said upthread, all of this work is done by volunteers in their spare time. There usually isn't an ETA and some bugs don't get fixed.

@Geo-Ron
Copy link

Geo-Ron commented Apr 14, 2021

@Markarend

My customer needs a fix for this!

I'd like to remind you that this repo is community driven, from people contributing on their own personal time. So please be patient as we may also have unforeseen priorities.

This is something I was unaware of.

@erwinvanhunen
Copy link
Member

To give you an update: this is not an issue with PnP PowerShell but has to do with how SharePoint Online handles authorization. We provided Microsoft with this feedback and are waiting for them to reply on it. We have no ETA when that will happen.

@github-actions
Copy link

github-actions bot commented May 8, 2021

This issue is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 5 days

@bernardw1
Copy link

Hello All, I just wanted to comment saying that I am running into this issue still. Hopefully it is still on the radar to get fixed at some point.

@Markarend
Copy link

Hi Bernard, the PnP projects are "community driven" and AFAIK don't have a current timeline for fixing this. However please note there are many ways to connect with SharePoint online using PnP under different circumstances, and many of them do work. See the 13 different examples. May take some digging to get the most promising example for your scenario working. I needed to use Example 3 because of non-interactive login. First attempts didn't work just, but then I found more details about dependencies and finally got it working:

The key is to follow this article Granting access using SharePoint App-Only, but to add the scope /sharepoint/social/tenant. Update the Permission Request XML as follows, and it will permit writing user profile properties.

<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
  <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="FullControl" />
</AppPermissionRequests>

This ACS which is retired now but explicitly still supported for SharePoint use

@mikelee1313
Copy link

Anyone updates for the new year?

@Yvand
Copy link

Yvand commented Feb 1, 2023

Today I got an update from Engineering: They continued the work and made progress since my last message, but they still don't have a more precise timeline to communicate, very unfortunately

@heinrich-ulbricht
Copy link

Imagine being a PM and getting this response from engineering ⛈️😉

@Yvand
Copy link

Yvand commented Feb 3, 2023

@heinrich-ulbricht I'm just the messenger who understands the frustration of people in this thread who are waiting for this fix for so long.
I take the time to chase Engineering and provide whatever update I have, even if it is a poor one.
I could have chosen to just remain silent

@Mntz
Copy link

Mntz commented Feb 16, 2023

Is the current work-around still working?

I created a new Azure AD App + secret.
Next on the tenant-admin.sharepoint.com/_layouts/15/appinv.aspx added the FullControl rights to both the content and social scope.
Using Connect-PnPOnline with ClientId and ClientSecret, the Get-PnPUserProfileProperty command is working fine.
But Set-PnPUserProfileProperty returns the following error:

Set-PnPUserProfileProperty : De huidige gebruiker is niet gemachtigd om deze bewerking uit te voeren.
At line:1 char:1
+ Set-PnPUserProfileProperty -Account $acc.AccountName -PropertyName 'S ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Set-PnPUserProfileProperty], PSInvalidOperationException
    + FullyQualifiedErrorId : InvalidOperation,PnP.PowerShell.Commands.UserProfiles.SetUserProfileProperty

The error text in this Dutch tenant translates the same but the CategoryInfo differs from the topic start.

@brianpmccullough
Copy link

Is the current work-around still working?

I created a new Azure AD App + secret. Next on the tenant-admin.sharepoint.com/_layouts/15/appinv.aspx added the FullControl rights to both the content and social scope. Using Connect-PnPOnline with ClientId and ClientSecret, the Get-PnPUserProfileProperty command is working fine. But Set-PnPUserProfileProperty returns the following error:

Set-PnPUserProfileProperty : De huidige gebruiker is niet gemachtigd om deze bewerking uit te voeren.
At line:1 char:1
+ Set-PnPUserProfileProperty -Account $acc.AccountName -PropertyName 'S ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Set-PnPUserProfileProperty], PSInvalidOperationException
    + FullyQualifiedErrorId : InvalidOperation,PnP.PowerShell.Commands.UserProfiles.SetUserProfileProperty

The error text in this Dutch tenant translates the same but the CategoryInfo differs from the topic start.

Did you run the following on each Geo where you need to perform the Get/Set? Also, if multi-geo, you will need to so the ACS registration (AppInv.aspx) on each central admin site.

set-spotenant -DisableCustomAppAuthentication $false

https://learn.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs

@Mntz
Copy link

Mntz commented Feb 16, 2023

Found the issue... the error was kind of misleading:
I tried to set SPS-Location but the location value was not yet available in the term store.
Since I first tried Set-PnPUserProfileProperty using certificate authentication instead of using secrets I figured it was still the same issue, but no.

@brianpmccullough
Copy link

Yes, for sync scenarios, I usually let those termsets remain open - following the model that OOB SharePoint uses for fields like Job Title, etc.

@sli701
Copy link

sli701 commented Mar 22, 2023

ERROR: This operation requires you to be managing your own data or have administrator privileges.

Getting the same error here when using Azure Function and App Registration.

Is there a fix?

@RichWorld-Tech
Copy link

Connect-PnPOnline -Url $URL -UseWebLogin. This is not ideal nor what we want for automation purposes, but it will work. When working on multiple users, I add it to the Begin block and do the work in the Process block of the script in order to pipe information to the script. Hope that helps.

@Milkias1
Copy link

ONE SOLUTION

Finally found a way to authenticate to SharePoint online to write profile properties without an interactive/user logon, that works from Azure function app. Unfortunately it uses ACS which is retired now but explicitly still supported for SharePoint use. So it's not my preferred approach, but as it actually works, it's better than all other approaches so far.

The key is to follow this article Granting access using SharePoint App-Only, but to add the scope /sharepoint/social/tenant. Update the Permission Request XML as follows, and it will permit writing user profile properties.

<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
  <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="FullControl" />
</AppPermissionRequests>

Still looking for a more "modern" approach that's not just supported as a waiver from a retired approach. Many thanks to all!

Thank you, Markarend this worked for me.

@jackpoz
Copy link
Contributor

jackpoz commented Jul 28, 2023

Just wanted to mention that New-PnPUPABulkImportJob works fine with an app registration with Certificate and permissions assigned only in AAD with SharePoint "Sites.FullControl.All" and "User.ReadWrite.All" and no permissions assigned in SPO at /_layouts/15/appinv.aspx , tested it this week in 2 different tenants.

@testad
Copy link

testad commented Jul 28, 2023

Thanks a lot @jackpoz, will definitely try this out. Glad to get rid of this ACS dependance.

@rayghost503
Copy link

SPOM

This seems to be working for me. I just fixed an automation I had working.

@jackpoz
Copy link
Contributor

jackpoz commented Oct 19, 2023

I was able to test New-PnPUPABulkImportJob with Managed Identity in Automation Account in Azure and it works fine that way too

@KoenZomers
Copy link
Collaborator

Good to hear the feedback here that it has started to work for some of you. Just for awareness, the PG is still actively working on completing implementing this scenario. This means for now that it might already work for you, but specific scenarios, such as when you're using taxonomy driven user profile fields, might not work yet. Keep this in mind when switching to the Azure AD / Entra ID option. Test everything thoroughly. If it works for your use case, you're good to go, if it doesn't yet, bear a little longer with us, it's still work in progress.

@bpw320
Copy link

bpw320 commented Nov 3, 2023

I got the error: the current user has insufficient permissions to perform this operation for:
SetMultiValuedProfileProperty
SetSingleValueProfileProperty for property: SPS-Location

However, SetSingleValueProfileProperty does work for other custom properties

I use PNP.framework, set ClientContext using new AuthenticationManager().GetACSAppOnlyContext(siteurl, clientid, secret)

Thanks

@sidndis27
Copy link

sidndis27 commented Feb 5, 2024

Get-PnPUserProfileProperty works with -ClientSecret but not working with -Thumbprint. Getting Access Denied. Can someone please help?

I used permissions

<AppPermissionRequests AllowAppOnlyPolicy="true">
 <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
 <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="FullControl" />
</AppPermissionRequests>

@WiljanD
Copy link

WiljanD commented Feb 6, 2024

I fixed the issue with the latest PowerShell module on Powershell 7.2 with the command "Sync-PnPSharePointUserProfilesFromAzureActiveDirectory" all information is well documented: https://pnp.github.io/powershell/cmdlets/Sync-PnPSharePointUserProfilesFromAzureActiveDirectory.html

The service principal needs to have the following rights:
Graph API:
[User.Read.All]

Sharepoint API
[User.Read.All]
[Sites.FullControl.All]

Which will look like:
image

The module also has commands for granting these rights in an easy way:
Add-PnPAzureADServicePrincipalAppRole -Principal "<Service Principal Name>" -AppRole "User.Read.All" -BuiltInType MicrosoftGraph
Add-PnPAzureADServicePrincipalAppRole -Principal "<Service Principal Name>" -AppRole "Sites.FullControl.All" -BuiltInType SharePointOnline
Add-PnPAzureADServicePrincipalAppRole -Principal "<Service Principal Name>" -AppRole "User.Read.All" -BuiltInType SharePointOnline

Then also grant the permissions in Sharepoint:
App permission:
<AppPermissionRequests AllowAppOnlyPolicy="true"> <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" /> </AppPermissionRequests>
I suspect that this rights package will help in granting rights also for Set-PnPUserProfileProperty, but I started using the latest module because it adds support for using System managed identities and User Managed Identities which I'm using in combination with a automation account to sync the attributes from Azure AD to SharePoint.

The script looks like this:

Connect-PnPOnline tentantname-admin.sharepoint.com -ManagedIdentity -UserAssignedManagedIdentityClientId "Service principal ObjectID"

$users = Get-PnPAzureADUser -select "OnPremisesSamAccountName"

Sync-PnPSharePointUserProfilesFromAzureActiveDirectory -UserProfilePropertyMapping @{"UserName"="OnPremisesSamAccountName";"CellPhone"="MobilePhone"} -Users $users -Folder "Documents"

Disconnect-PnPOnline

@ttd-kevinclement
Copy link

ttd-kevinclement commented Jun 12, 2024

Hi Bernard, the PnP projects are "community driven" and AFAIK don't have a current timeline for fixing this. However please note there are many ways to connect with SharePoint online using PnP under different circumstances, and many of them do work. See the 13 different examples. May take some digging to get the most promising example for your scenario working. I needed to use Example 3 because of non-interactive login. First attempts didn't work just, but then I found more details about dependencies and finally got it working:

The key is to follow this article Granting access using SharePoint App-Only, but to add the scope /sharepoint/social/tenant. Update the Permission Request XML as follows, and it will permit writing user profile properties.

<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
  <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="FullControl" />
</AppPermissionRequests>

This ACS which is retired now but explicitly still supported for SharePoint use

Is there a way to assign these permissions using the PnP commandlets? Or some non SharePoint registration?
Working with a ManagedIdentity for Runbooks, most of the PnP commands seem to work minus the PnPUserProfileProperty and I'm assuming others as well.
image
Current permissions associated with the managed identity, as well as granted said identity sharepoint administrator role (Which doesn't seem to do much)

@AndersRask
Copy link

AndersRask commented Jun 12, 2024

In my testing the issue with ACL is now solved, and so legacy auth using appreg.aspx is no longer needed.
I have tested using both system managed identity and app reg with cert. Both works fine updating user profile properties including term set fields with only API permissions

Set-PnPUserProfileProperty -Account adelev@contoso.onmicrosoft.com -PropertyName "SPS-Location" -Value "Stockholm"

The key is adding TermStore.ReadWrite.All. You can ignore the exchange perm as it was only used for testing
image

@ttd-kevinclement
Copy link

In my testing the issue with ACL is now solved, and so legacy auth using appreg.aspx is no longer needed. I have tested using both system managed identity and app reg with cert. Both works fine updating user profile properties including term set fields with only API permissions

Set-PnPUserProfileProperty -Account adelev@contoso.onmicrosoft.com -PropertyName "SPS-Location" -Value "Stockholm"

The key is adding TermStore.ReadWrite.All. You can ignore the exchange perm as it was only used for testing image

Looks like TermStore permission is all that was missing. Rest of the commands seem to work now.

@KoenZomers
Copy link
Collaborator

Thanks @AndersRask for sharing and @ttd-kevinclement for confirming. I will update our documentation with this great info.

I guess with that, we can also finally close this long running open issue. Thanks for providing all the feedback and thoughts here everyone.

KoenZomers added a commit to KoenZomers/pnppowershell that referenced this issue Jun 12, 2024
gautamdsheth added a commit that referenced this issue Jun 27, 2024
* Minor documentation fixes (#3849)

* Update Set-PnPTemporarilyDisableAppBar.md

* Update Set-PnPTeamsTeamPicture.md

* Update Set-PnPTeamsTeamArchivedState.md

* Update Set-PnPTeamsTag.md

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Nightly publish to PowerShell Gallery

* Update CHANGELOG.md

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* new cmdlet unlock-PnPSensitivityLabelEncryptedFile

* Add ErrorMessage in batch delete progress

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Fix Copy-PnPList handling of lookup columns (#3870)

Fix Copy-PnPList copying the list connected to the first lookup column instead of the specified list.

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Minor documentation fixes (#3853)

* Added connection parameter description

* Added connection parameter description

* Update Set-PnPStructuralNavigationCacheWebState.md

* Update Set-PnPStructuralNavigationCacheWebState.md

* Update Set-PnPStructuralNavigationCacheWebState.md

* Update Set-PnPStructuralNavigationCacheSiteState.md

* Removed WhatIf parameter description

* Update Set-PnPSiteVersionPolicy.md

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* add example (#3869)

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Additional settings for SetTenantSite.cs : LoopDefaultSharingLinkRole, DefaultShareLinkScope, DefaultShareLinkRole, LoopDefaultSharingLinkScope (#3874)

* New parameters added to Set tenant site

* updae

* Update to add additional properties

* updated files

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Adding upload entire local folder to SharePoint Online into `Copy-PnPFolder` (#3850)

* Adding functionality to allow a local folder with all its files and optionally recursed subfolders to be uploaded to SharePoint Online

* Added PR reference

* Typo fix

* Adding verbose parameter

* Fixing syntax issue

* Added that empty folders will also be removed when providing -RemoveAfterCopy

* Updated help text to reflect folders being deleted now as well

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Renaming Progress to Status as discussed

* Added changelog entry

* Adding changelog entry

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Fix exception in PnPConnectedCmdlet (#3885)

Fix an NullDereferenceException happening when an exception is logged in PnPConnectedCmdlet but the connection passed through -Connection parameter is not the latest one.

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Minor Doc change: Add-PnPFolderUserSharingLink (#3881)

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Adding support for vanity domain tenants in `Get-PnPSiteCollectionAppCatalog` and `Get-PnPTenantSite` (#3895)

* Adding support for vanity domain tenants

* Added changelog entry

* Grammar fix

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Fix NullDereferenceException in Get-PnPUserProfileProperty (#3891)

Fix NullDereferenceException happening in Get-PnPUserProfileProperty when the user profile doesn't exist, showing a better error message

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* replace ParentTerm by ParentTermId (#3890)

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Nightly publish to PowerShell Gallery

* Adding support for vanity domains to several cmdlets (#3898)

* Updating cmdlets to use the TenantAdminUrl if possible before trying to guess the tenant admin URL

* Adding PR reference

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Preparing for Managed Identity support in PnP Framework (#3857)

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Fix destination folder definition in build process on Mac dev machines (#3907)

* fix destination folder definition

* fix destination folder definition

---------

Co-authored-by: Tobias Maestrini <tobias@bee365.ch>

* Update CHANGELOG.md

* Minor documentation fixes (#3893)

* Update Set-PnPSiteTemplateMetadata.md

* Added Connection parameter description

* Update Set-PnPSiteGroup.md

* Update Set-PnPSiteDesign.md

* Update Set-PnPSearchSettings.md

* Update Set-PnPRoleDefinition.md

* Update Set-PnPRetentionLabel.md

* Removed common parameters

* Added connection parameter description

* Removed common parameters

* Update Set-PnPPageWebPart.md

* Removed [] from mandatory parameters

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Feature: bump MSAL.NET to latest version (#3905)

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Nightly publish to PowerShell Gallery

* Bump alpine linux version

* Update release.yml

* Create codeql.yml (#3915)

* Update codeql.yml

* Update codeql.yml

* Update codeql.yml

* Update codeql.yml

* Update codeql.yml

* Update codeql.yml

* Update buildpr.yml

* Nightly publish to PowerShell Gallery

* Update hub.docker.md

* Update pnppowershell.dockerFile

* Update Publish-UnpublishedImage.ps1

* Update README.md

* Update dev-containers.md

* Update dev-containers.md

* Update docker.md

* Create scorecard.yml

* Update scorecard.yml

* Update scorecard.yml

* Update scorecard.yml

* Update scorecard.yml

* Update scorecard.yml

* Update scorecard.yml

* Update scorecard.yml

* Update README.md

* Nightly publish to PowerShell Gallery

* Update codeql.yml

* Update closestaleissues.yml

* Update cleanupnightlyreleases.yml

* Update buildpr.yml

* Update buildexternalhelp.yml

* Update buildpr.yml

* Update -Schema parameter documentation (#3923)

Add missing Schema versions V202103 and V202209 to all -Schema parameters in different cmdlets

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update buildpr.yml

* Update builddocsite.yml

* Update checkdocumentationbuild.yml

* Update nightlyrelease.yml

* Update Publish-UnpublishedImage.ps1

* Update pnppowershell.dockerFile

* Update Publish-UnpublishedImage.ps1

* Update release.yml

* Update nightlyrelease.yml

* Update nightlyrelease.yml

* Update release.yml

* Update LICENSE

* Update shared.ps1

* Delete samples/Provisioning.SelfHostedWithAzureWebJob/Engine/nuget.exe

* Update codeql.yml

* Create SECURITY.md

* Update codeql.yml

* Update README.md

* Nightly publish to PowerShell Gallery

* Update README.md

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Updated spo-tenant with additional tenant settings (#3930)

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Update builddocsite.yml

* Added Exchange Online properties of Microsoft 365 Groups (#3958)

* Added implementation

* Added PR reference

* Fixing documentation build issue

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Allow to pass Group parameter to Remove-PnPGroupMember from pipeline (#3955)

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Adds documentation for missing parameter MarkNewFilesSensitiveByDefault to set-spotenant (#3936)

* Updated spo-tenant with additional tenant settings

* Update doc to include MarkNewFilesSensitiveByDefault

* remove a parameter

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update SiteIDtoURL.ps1

MFA, Script Execution

* Update version.txt

* Nightly publish to PowerShell Gallery

* Update builddocsite.yml

* closes #3945 (#3947)

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Fixed some grammar issues (#3960)

* Fix grammar issues

* added to changelog

* reviewer comments

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Bump MSAL.NET to latest

* Change runner back to linux

* Amend to return additional parameters (#3948)

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* New cmdlet for getcontainerType and minor changes to docs (#3946)

* Update CHANGELOG.md

* Allow to pass empty values to Set-PnPTenantCdnPolicy (#3937)

Change Set-PnPTenantCdnPolicy to allow PolicyValue to be an empty string or $null, while still being mandatory.

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Update Disable-PnPTenantServicePrincipal.md (#3975)

Instead of enabling this cmdlet should disable the PnPTenantServicePrincipal

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Add additional settings RecycleBinRetentionPeriod,OneDriveBlockGuestsAsSiteAdmin,OneDriveDefaultShareLinkRole,OneDriveDefaultShareLinkScope,OneDriveDefaultLinkToExistingAccess (#3977)

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Improve security

* Nightly publish to PowerShell Gallery

* Files for new cmdlets Set-PnPTenantRestrictedSearchMode and GetTenantRestrictedSearchMode.cs (#3976)

* Files for rss

* update to executequeryretry

* add client

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Updated for MacOS

* Additional tenant settings from api/SPOInternalUseOnly.TenantAdminSettings (#3902)

* internal settings files

* Added additional clarification

* update get-PnPTenantInternalSettings to get-PnPTenantInternalSetting

* Update to use "System.Text.Json;" and remove other references.

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Nightly publish to PowerShell Gallery

* Remove obsolete UserVoiceForFeedbackEnabled parameter in SetTenant.cs (#3985)

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Update CHANGELOG.md

* chore: Update Set-PnPHomeSite.md and SetHomeSite.cs (#3986)

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Update PnPTenantSite to include additional properties and their setters (#3987)

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Update CHANGELOG.md

* feat: Add ExecuteQueryRetry to Admin commands for improved reliability (#3988)

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Nightly publish to PowerShell Gallery

* cmdlet to add home site (#3989)

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Added new cmdlet to return modern page scheduling enabled status

* Moved cmdlets to Pages namespace

* Update CHANGELOG.md

* feat: Add SortByStorage parameter to GetContainer cmdlet & fix pagination (#3990)

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Update CHANGELOG.md

* Nightly publish to PowerShell Gallery

* feat: Include sensitivity labels in Get-PnPMicrosoft365Group command (#3991)

* feat: Update Microsoft365Group commands to include IncludeSensitivityLabels parameter

* feat: Include sensitivity labels in Get-PnPMicrosoft365Group command

---------

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Update CHANGELOG.md

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Updated contributors

* Remove uservoice property since it is deprecated

* Update CHANGELOG.md

* Trying macos runner

* Update buildpr.yml

* Fix New-PnPTeamsTeam sometimes "Conflict (409): Team already exists" (#3992)

Handle "Conflict (409): Team already exists" error as a case of "a previous teamify call succeeded".

Fix #3964

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Feature: added new cmdlet Get-PnPFileSensitivityLabelInfo (#3994)

* Feature: added new cmdlet Get-PnPFileSensitivityLabelInfo

* Update SPOFileSensitivityLabelInfo.cs

---------

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Update CHANGELOG.md

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* chore: Update Get-PnPHomeSite to include Viva Connections functionality (#4002)

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Updated permissions according to findings shared in #277

* Nightly publish to PowerShell Gallery

* Removing faulty brackets

* Fixing update done through #3958 (#4013)

* Adding additional information, removing alias as it works inversed from the original cmdlet name, only kept the Graph name and ditched the Exchange Online name

* Added code to distinguish the type of token being used (Delegate vs AppOnly) and using it to show a warning if properties are being set with the wrong token type

* Renaming method as this makes more sense

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update SetSiteVersionPolicy.cs (#4005)

Changed "Progress" to "Status" as the cmdlet has been renamed as well.

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Security: Bump MSAL.NET to latest (#4018)

* Nightly publish to PowerShell Gallery

* Updated synopsis for Graph API limitations

Added a comment in the Synopsis section for Graph API limitations where some `-Type` values are not configurable (PowerBI).

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Updated documentation for Set-PnPFolderPermission (#4025)

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update Set-PnPList.md (#4020)

See #3783 where an issue is described when this feature is not activated. So maybe this PR makes the documentation more clear.

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* New cmdlet for Get-PnPTenantRestrictedSearchAllowedList (#3997)

* new cmdlet

* correct space

* add documentation

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Feature #4028 : return EnableAIPIntegation in Get-PnPTenant cmdlet (#4030)

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Fix #3908: improve connection validation in ConnectOnline.cs (#4031)

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Adding `-IsSharePointAddInsDisabled` to `Set-PnPTenant` (#4032)

* Added -IsSharePointAddInsDisabled to Set-PnPTenant

* Added PR reference

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Fix error handling in Remove-PnPTeamsChannel (#4036)

Fix Remove-PnPTeamsChannel error handling mismatch between "Team not found", "Channel not found" and no error.

* Update CHANGELOG.md

* More settings related to version trim ,ReadOnlyForUnmanagedDevices and RestrictContentOrgWideSearch (#4024)

* More settings related to version trim ,ReadOnlyForUnmanagedDevices and RestrictContentOrgWideSearch

* remove reference to forms

* remove version trim settings

---------

Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Update Copy-PnPFile.md

Removed the comment saying we couldn't copy files between SPO and ODFB. We've created this functionality in previous versions (see issue #1720).

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Nightly publish to PowerShell Gallery

* Fix #4041 : issue retrieving loop sharing information (#4047)

Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>

* Update AddListFoldersToSiteTemplate.cs (#3918)

Co-authored-by: Maxime HAZEBROUCQ (Ext) <maxime.hazebroucq@ext.hermes.com>
Co-authored-by: Gautam Sheth <gautamdsheth@outlook.com>

* Update CHANGELOG.md

* Nightly publish to PowerShell Gallery

* Bump references for 2.5 release

---------

Co-authored-by: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com>
Co-authored-by: erwinvanhunen <erwinvanhunen@users.noreply.github.com>
Co-authored-by: reshmee011 <reshmee011@gmail.com>
Co-authored-by: jennywu <jennywu@microsoft.com_odspmdb>
Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
Co-authored-by: Aimery Thomas <7100077+a1mery@users.noreply.github.com>
Co-authored-by: Koen Zomers <koen@zomers.eu>
Co-authored-by: WCONFR <68463689+WCONFR@users.noreply.github.com>
Co-authored-by: Tobias Maestrini <69770609+tmaestrini@users.noreply.github.com>
Co-authored-by: Tobias Maestrini <tobias@bee365.ch>
Co-authored-by: Gautam Sheth <gautam.sheth@staffbase.com>
Co-authored-by: gautamdsheth <gautamdsheth@users.noreply.github.com>
Co-authored-by: Sam Larson (Microsoft) <salarson@microsoft.com>
Co-authored-by: Christian Veenhuis <124370897+ChVeen@users.noreply.github.com>
Co-authored-by: Mark Gort <52573368+markgort86@users.noreply.github.com>
Co-authored-by: Erwin van Hunen <erwin.van.hunen@outlook.com>
Co-authored-by: Marc Studer <31045631+Studermarc@users.noreply.github.com>
Co-authored-by: Veronique Lengelle <25181757+veronicageek@users.noreply.github.com>
Co-authored-by: Paolo Pialorsi <paolo@pialorsi.com>
Co-authored-by: mhazebroucq <mhazebroucq@gmail.com>
Co-authored-by: Maxime HAZEBROUCQ (Ext) <maxime.hazebroucq@ext.hermes.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working reproduced Issue reproduced after testing support looking into it Microsoft Support is looking into the server side of this issue
Projects
None yet
Development

No branches or pull requests