From f2ac568bf585b3f02c3ed2083660156b9b9bd3e1 Mon Sep 17 00:00:00 2001 From: Reshmee Auckloo Date: Tue, 28 May 2024 14:49:06 +0100 Subject: [PATCH] Add additional settings RecycleBinRetentionPeriod,OneDriveBlockGuestsAsSiteAdmin,OneDriveDefaultShareLinkRole,OneDriveDefaultShareLinkScope,OneDriveDefaultLinkToExistingAccess (#3977) Co-authored-by: Gautam Sheth --- documentation/Set-PnPTenant.md | 112 ++++++++++++++++++++++++++++---- src/Commands/Admin/SetTenant.cs | 62 ++++++++++++++---- src/Commands/Model/SPOTenant.cs | 53 +++++++++------ 3 files changed, 186 insertions(+), 41 deletions(-) diff --git a/documentation/Set-PnPTenant.md b/documentation/Set-PnPTenant.md index 63800b53e..867623c10 100644 --- a/documentation/Set-PnPTenant.md +++ b/documentation/Set-PnPTenant.md @@ -149,6 +149,11 @@ Set-PnPTenant [-SpecialCharactersStateInFileFolderNames [-ESignatureEnabled ] [-BlockUserInfoVisibilityInSharePoint ] [-MarkNewFilesSensitiveByDefault ] + [-OneDriveDefaultShareLinkScope ] + [-OneDriveDefaultShareLinkRole ] + [-OneDriveDefaultLinkToExistingAccess ] + [-OneDriveBlockGuestsAsSiteAdmin ] + [-RecycleBinRetentionPeriod ] [-Force] [-Connection ] ``` @@ -1802,14 +1807,10 @@ Gets or sets default share link role for fluid on SharePoint sites. The valid values are: - Edit -- LimitedEdit -- LimitedView -- ManageList - None -- Owner - RestrictedView - Review -- Submit +- View ```yaml Type: Role @@ -1984,14 +1985,10 @@ Gets or sets default share link role for fluid on OneDrive sites. The valid values are: - Edit -- LimitedEdit -- LimitedView -- ManageList - None -- Owner - RestrictedView - Review -- Submit +- View ```yaml Type: Role @@ -2558,7 +2555,7 @@ Accept pipeline input: False Accept wildcard characters: False ``` -### MarkNewFilesSensitiveByDefault +### -MarkNewFilesSensitiveByDefault Marks new files as sensitive by default before DLP policies are applied. ```yaml @@ -2571,6 +2568,99 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -OneDriveDefaultShareLinkScope + +Sets the default sharing link scope for OneDrive. + +The valid values are: + +- Anyone +- Organization +- SpecificPeople +- Uninitialized + +```yaml +Type: SharingScope +Parameter Sets: (All) +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OneDriveDefaultShareLinkRole + +Sets the default sharing link role for OneDrive. + +Valid values are : + +- Edit +- None +- RestrictedView +- Review +- View + +```yaml +Type: Role +Parameter Sets: (All) +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OneDriveDefaultLinkToExistingAccess + +Sets whether OneDrive default links should grant access to existing users. + +```yaml +Type: Boolean +Parameter Sets: (All) +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -OneDriveBlockGuestsAsSiteAdmin + +Sets the sharing state for blocking guests as site admin in OneDrive. + +Valid values are + +- On +- Off +- Unspecified + +```yaml +Type: SharingState +Parameter Sets: (All) +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RecycleBinRetentionPeriod + +Sets the retention period for the recycle bin. + +The value of Recycle Bin Retention Period must be between 14 and 93. By default it is set to 93. + +```yaml +Type: Int32 +Parameter Sets: (All) +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Force If provided, no confirmation will be requested and the action will be performed diff --git a/src/Commands/Admin/SetTenant.cs b/src/Commands/Admin/SetTenant.cs index 8368d06cd..6cae740de 100644 --- a/src/Commands/Admin/SetTenant.cs +++ b/src/Commands/Admin/SetTenant.cs @@ -418,40 +418,55 @@ public class SetTenant : PnPAdminCmdlet public InformationBarriersMode? DefaultOneDriveInformationBarrierMode { get; set; } [Parameter(Mandatory = false)] - public bool? DelayDenyAddAndCustomizePagesEnforcement; + public bool? DelayDenyAddAndCustomizePagesEnforcement { get; set; } [Parameter(Mandatory = false)] - public SharingCapabilities? CoreSharingCapability; + public SharingCapabilities? CoreSharingCapability { get; set; } [Parameter(Mandatory = false)] - public bool? EnableVersionExpirationSetting; + public bool? EnableVersionExpirationSetting { get; set; } [Parameter(Mandatory = false)] public TenantBrowseUserInfoPolicyValue? BlockUserInfoVisibilityInOneDrive; [Parameter(Mandatory = false)] - public bool? AllowOverrideForBlockUserInfoVisibility; + public bool? AllowOverrideForBlockUserInfoVisibility { get; set; } [Parameter(Mandatory = false)] - public bool? AllowEveryoneExceptExternalUsersClaimInPrivateSite; + public bool? AllowEveryoneExceptExternalUsersClaimInPrivateSite { get; set; } [Parameter(Mandatory = false)] - public bool? AIBuilderEnabled; + public bool? AIBuilderEnabled { get; set; } [Parameter(Mandatory = false)] - public bool? AllowSensitivityLabelOnRecords; + public bool? AllowSensitivityLabelOnRecords { get; set; } [Parameter(Mandatory = false)] - public bool? AnyoneLinkTrackUsers; + public bool? AnyoneLinkTrackUsers { get; set; } [Parameter(Mandatory = false)] - public bool? EnableSiteArchive; + public bool? EnableSiteArchive { get; set; } [Parameter(Mandatory = false)] - public bool? ESignatureEnabled; + public bool? ESignatureEnabled { get; set; } [Parameter(Mandatory = false)] - public TenantBrowseUserInfoPolicyValue? BlockUserInfoVisibilityInSharePoint; + public TenantBrowseUserInfoPolicyValue? BlockUserInfoVisibilityInSharePoint { get; set; } + + [Parameter(Mandatory = false)] + public SharingScope? OneDriveDefaultShareLinkScope { get; set; } + + [Parameter(Mandatory = false)] + public Role? OneDriveDefaultShareLinkRole { get; set; } + + [Parameter(Mandatory = false)] + public bool? OneDriveDefaultLinkToExistingAccess { get; set; } + + [Parameter(Mandatory = false)] + public SharingState? OneDriveBlockGuestsAsSiteAdmin { get; set; } + + [Parameter(Mandatory = false)] + public int? RecycleBinRetentionPeriod { get; set; } protected override void ExecuteCmdlet() { @@ -1472,6 +1487,31 @@ protected override void ExecuteCmdlet() Tenant.AllowOverrideForBlockUserInfoVisibility = AllowOverrideForBlockUserInfoVisibility.Value; modified = true; } + if (OneDriveDefaultShareLinkScope.HasValue) + { + Tenant.OneDriveDefaultShareLinkScope = OneDriveDefaultShareLinkScope.Value; + modified = true; + } + if (OneDriveDefaultShareLinkRole.HasValue) + { + Tenant.OneDriveDefaultShareLinkRole = OneDriveDefaultShareLinkRole.Value; + modified = true; + } + if (OneDriveDefaultLinkToExistingAccess.HasValue) + { + Tenant.OneDriveDefaultLinkToExistingAccess = OneDriveDefaultLinkToExistingAccess.Value; + modified = true; + } + if (OneDriveBlockGuestsAsSiteAdmin.HasValue) + { + Tenant.OneDriveBlockGuestsAsSiteAdmin = OneDriveBlockGuestsAsSiteAdmin.Value; + modified = true; + } + if (RecycleBinRetentionPeriod.HasValue) + { + Tenant.RecycleBinRetentionPeriod = RecycleBinRetentionPeriod.Value; + modified = true; + } if (BlockDownloadFileTypePolicy.HasValue) { if (!BlockDownloadFileTypePolicy.Value) diff --git a/src/Commands/Model/SPOTenant.cs b/src/Commands/Model/SPOTenant.cs index 94b9a8dd2..a2488ca87 100644 --- a/src/Commands/Model/SPOTenant.cs +++ b/src/Commands/Model/SPOTenant.cs @@ -236,6 +236,15 @@ public class SPOTenant public SharingState? AllowAnonymousMeetingParticipantsToAccessWhiteboards { private set; get; } + public SharingScope? OneDriveDefaultShareLinkScope { private set; get; } + + public Role? OneDriveDefaultShareLinkRole { private set; get; } + + public bool? OneDriveDefaultLinkToExistingAccess { private set; get; } + + public SharingState? OneDriveBlockGuestsAsSiteAdmin { private set; get; } + + public int? RecycleBinRetentionPeriod { private set; get; } #endregion public SPOTenant(Tenant tenant, ClientContext clientContext) @@ -751,25 +760,31 @@ public SPOTenant(Tenant tenant, ClientContext clientContext) { } - CoreSharingCapability = tenant.CoreSharingCapability; - EnableVersionExpirationSetting = tenant.EnableVersionExpirationSetting; - BlockUserInfoVisibilityInOneDrive = tenant.BlockUserInfoVisibilityInOneDrive; - AllowOverrideForBlockUserInfoVisibility = tenant.AllowOverrideForBlockUserInfoVisibility; - AllowEveryoneExceptExternalUsersClaimInPrivateSite = tenant.AllowEveryoneExceptExternalUsersClaimInPrivateSite; - AllowSensitivityLabelOnRecords = tenant.AllowSensitivityLabelOnRecords; - AnyoneLinkTrackUsers = tenant.AnyoneLinkTrackUsers; - AIBuilderEnabled = tenant.AIBuilderEnabled; - EnableSiteArchive = tenant.EnableSiteArchive; - ESignatureEnabled = tenant.ESignatureEnabled; - BlockUserInfoVisibilityInSharePoint = tenant.BlockUserInfoVisibilityInSharePoint; - OneDriveLoopDefaultSharingLinkScope = tenant.OneDriveLoopDefaultSharingLinkScope; - CoreLoopDefaultSharingLinkScope = tenant.CoreLoopDefaultSharingLinkScope; - OneDriveLoopSharingCapability = tenant.OneDriveLoopSharingCapability; - CoreLoopSharingCapability = tenant.CoreLoopSharingCapability; - OneDriveLoopDefaultSharingLinkRole = tenant.OneDriveLoopDefaultSharingLinkRole; - CoreLoopDefaultSharingLinkRole = tenant.CoreLoopDefaultSharingLinkRole; - IsCollabMeetingNotesFluidEnabled = tenant.IsCollabMeetingNotesFluidEnabled; - AllowAnonymousMeetingParticipantsToAccessWhiteboards = tenant.AllowAnonymousMeetingParticipantsToAccessWhiteboards; + + try{CoreSharingCapability = tenant.CoreSharingCapability;}catch{} + try{EnableVersionExpirationSetting = tenant.EnableVersionExpirationSetting;}catch{} + try{BlockUserInfoVisibilityInOneDrive = tenant.BlockUserInfoVisibilityInOneDrive;}catch{} + try{AllowOverrideForBlockUserInfoVisibility = tenant.AllowOverrideForBlockUserInfoVisibility;}catch{} + try{AllowEveryoneExceptExternalUsersClaimInPrivateSite = tenant.AllowEveryoneExceptExternalUsersClaimInPrivateSite;}catch{} + try{AllowSensitivityLabelOnRecords = tenant.AllowSensitivityLabelOnRecords;}catch{} + try{AnyoneLinkTrackUsers = tenant.AnyoneLinkTrackUsers;}catch{} + try{AIBuilderEnabled = tenant.AIBuilderEnabled;}catch{} + try{EnableSiteArchive = tenant.EnableSiteArchive;}catch{} + try{ESignatureEnabled = tenant.ESignatureEnabled;}catch{} + try{BlockUserInfoVisibilityInSharePoint = tenant.BlockUserInfoVisibilityInSharePoint;}catch{} + try{OneDriveLoopDefaultSharingLinkScope = tenant.OneDriveLoopDefaultSharingLinkScope;}catch{} + try{CoreLoopDefaultSharingLinkScope = tenant.CoreLoopDefaultSharingLinkScope;}catch{} + try{OneDriveLoopSharingCapability = tenant.OneDriveLoopSharingCapability;}catch{} + try{CoreLoopSharingCapability = tenant.CoreLoopSharingCapability;}catch{} + try{OneDriveLoopDefaultSharingLinkRole = tenant.OneDriveLoopDefaultSharingLinkRole;}catch{} + try{CoreLoopDefaultSharingLinkRole = tenant.CoreLoopDefaultSharingLinkRole;}catch{} + try{IsCollabMeetingNotesFluidEnabled = tenant.IsCollabMeetingNotesFluidEnabled;}catch{} + try{AllowAnonymousMeetingParticipantsToAccessWhiteboards = tenant.AllowAnonymousMeetingParticipantsToAccessWhiteboards;}catch{} + try{OneDriveDefaultShareLinkScope = tenant.OneDriveDefaultShareLinkScope;}catch{} + try{OneDriveDefaultShareLinkRole = tenant.OneDriveDefaultShareLinkRole;}catch{} + try{OneDriveDefaultLinkToExistingAccess = tenant.OneDriveDefaultLinkToExistingAccess;}catch{} + try{OneDriveBlockGuestsAsSiteAdmin = tenant.OneDriveBlockGuestsAsSiteAdmin;}catch{} + try{RecycleBinRetentionPeriod = tenant.RecycleBinRetentionPeriod;}catch{} } } }