Skip to content

Set-Site

SharePoint Online: Sets or updates site collection properties

#Requires -Version 5.1
#Requires -Modules Microsoft.Online.SharePoint.PowerShell

[CmdletBinding()]
Param(
    [Parameter(Mandatory = $true)]
    [string]$Identity,
    [string]$Title,
    [ValidateSet('ExternalUserAndGuestSharing','Disabled','ExternalUserSharingOnly','ExistingExternalUserSharingOnly')]
    [string]$SharingCapability,
    [ValidateSet('NoAccess','ReadOnly','Unlock')]
    [string]$LockState,
    [string]$Owner,
    [int64]$StorageQuota,
    [int64]$StorageQuotaWarningLevel,
    [switch]$NoWait,
    [bool]$AllowEditing,
    [bool]$DenyAddAndCustomizePages,
    [bool]$CommentsOnSitePagesDisabled,
    [bool]$SocialBarOnSitePagesDisabled,
    [ValidateSet('None','View','Edit')]
    [string]$DefaultLinkPermission,
    [ValidateSet('None','AnonymousAccess','Internal','Direct')]
    [string]$DefaultSharingLinkType,
    [string]$SharingAllowedDomainList,
    [string]$SharingBlockedDomainList,
    [ValidateSet('None','AllowList','BlockList')]
    [string]$SharingDomainRestrictionMode,
    [ValidateSet('AllowFullAccess','AllowLimitedAccess','BlockAccess')]
    [string]$ConditionalAccessPolicy,
    [uint32]$LocaleId,
    [bool]$DisableFlows,
    [ValidateSet('Unknown','Check','Disabled','Enabled')]
    [string]$SandboxedCodeActivationCapability,
    [double]$ResourceQuota,
    [double]$ResourceQuotaWarningLevel,
    [switch]$DisableSharingForNonOwners,
    [switch]$RemoveLabel,
    [switch]$StorageQuotaReset
)

Process {
    try {
        $cmdArgs = @{ ErrorAction = 'Stop'; Confirm = $false; Identity = $Identity }
        if ($PSBoundParameters.ContainsKey('AllowEditing')) { $cmdArgs.Add('AllowEditing', $AllowEditing) }
        if ($PSBoundParameters.ContainsKey('ConditionalAccessPolicy')) { $cmdArgs.Add('ConditionalAccessPolicy', $ConditionalAccessPolicy) }
        if ($PSBoundParameters.ContainsKey('CommentsOnSitePagesDisabled')) { $cmdArgs.Add('CommentsOnSitePagesDisabled', $CommentsOnSitePagesDisabled) }
        if ($PSBoundParameters.ContainsKey('DefaultLinkPermission')) { $cmdArgs.Add('DefaultLinkPermission', $DefaultLinkPermission) }
        if ($PSBoundParameters.ContainsKey('DefaultSharingLinkType')) { $cmdArgs.Add('DefaultSharingLinkType', $DefaultSharingLinkType) }
        if ($PSBoundParameters.ContainsKey('DenyAddAndCustomizePages')) { $cmdArgs.Add('DenyAddAndCustomizePages', $DenyAddAndCustomizePages) }
        if ($PSBoundParameters.ContainsKey('DisableFlows')) { $cmdArgs.Add('DisableFlows', $DisableFlows) }
        if ($PSBoundParameters.ContainsKey('DisableSharingForNonOwners')) { $cmdArgs.Add('DisableSharingForNonOwners', $DisableSharingForNonOwners) }
        if ($PSBoundParameters.ContainsKey('LockState')) { $cmdArgs.Add('LockState', $LockState) }
        if ($PSBoundParameters.ContainsKey('NoWait')) { $cmdArgs.Add('NoWait', $NoWait) }
        if ($PSBoundParameters.ContainsKey('Owner')) { $cmdArgs.Add('Owner', $Owner) }
        if ($PSBoundParameters.ContainsKey('RemoveLabel')) { $cmdArgs.Add('RemoveLabel', $RemoveLabel) }
        if ($PSBoundParameters.ContainsKey('SandboxedCodeActivationCapability')) { $cmdArgs.Add('SandboxedCodeActivationCapability', $SandboxedCodeActivationCapability) }
        if ($PSBoundParameters.ContainsKey('SharingAllowedDomainList')) { $cmdArgs.Add('SharingAllowedDomainList', $SharingAllowedDomainList) }
        if ($PSBoundParameters.ContainsKey('SharingBlockedDomainList')) { $cmdArgs.Add('SharingBlockedDomainList', $SharingBlockedDomainList) }
        if ($PSBoundParameters.ContainsKey('SharingCapability')) { $cmdArgs.Add('SharingCapability', $SharingCapability) }
        if ($PSBoundParameters.ContainsKey('SharingDomainRestrictionMode')) { $cmdArgs.Add('SharingDomainRestrictionMode', $SharingDomainRestrictionMode) }
        if ($PSBoundParameters.ContainsKey('SocialBarOnSitePagesDisabled')) { $cmdArgs.Add('SocialBarOnSitePagesDisabled', $SocialBarOnSitePagesDisabled) }
        if ($PSBoundParameters.ContainsKey('StorageQuotaReset')) { $cmdArgs.Add('StorageQuotaReset', $StorageQuotaReset) }
        if ($PSBoundParameters.ContainsKey('Title')) { $cmdArgs.Add('Title', $Title) }
        if ($LocaleId -gt 0) { $cmdArgs.Add('LocaleId', $LocaleId) }
        if ($ResourceQuota -gt 0) { $cmdArgs.Add('ResourceQuota', $ResourceQuota) }
        if ($ResourceQuotaWarningLevel -gt 0) { $cmdArgs.Add('ResourceQuotaWarningLevel', $ResourceQuotaWarningLevel) }
        if ($StorageQuota -gt 0) { $cmdArgs.Add('StorageQuota', $StorageQuota) }
        if ($StorageQuotaWarningLevel -gt 0) { $cmdArgs.Add('StorageQuotaWarningLevel', $StorageQuotaWarningLevel) }
        $result = Set-SPOSite @cmdArgs | Select-Object *
        if ($null -ne $result) { foreach ($item in $result) { $item | Add-Member -NotePropertyName Timestamp -NotePropertyValue (Get-Date -Format "yyyy-MM-dd HH:mm:ss") -PassThru -Force } }
    }
    catch { throw }
}

URL of the site collection to update

Title of the site collection

Sharing capability level for the site

Lock state on the site

Owner of the site collection

Storage quota in megabytes

Off

Continue executing immediately

Off
Off
Off

An interactive directory of PowerShell scripts.