SPOHubSite

Parameters

Parameter Attribute DataType Description Allowed Values
Url Key String The URL of the site collection
Title Write String The title of the hub site
Description Write String The description of the hub site
LogoUrl Write String The url to the logo of the hub site
RequiresJoinApproval Write Boolean Does the hub site require approval to join
AllowedToJoin Write StringArray[] The users or mail-enabled security groups which are allowed to associate their site with a hub site
SiteDesignId Write String The guid of the site design to link to the hub site
Ensure Write String Present ensures the site collection is registered as hub site, absent ensures it is unregistered Present, Absent
Credential Write PSCredential Credentials of the account to authenticate with.
ApplicationId Write String Id of the Azure Active Directory application to authenticate with.
ApplicationSecret Write String Secret of the Azure Active Directory application to authenticate with.
TenantId Write String Name of the Azure Active Directory tenant used for authentication. Format contoso.onmicrosoft.com
CertificatePassword Write PSCredential Username can be made up to anything but password will be used for certificatePassword
CertificatePath Write String Path to certificate used in service principal usually a PFX file.
CertificateThumbprint Write String Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.

SPO Hub Site

This resource allows users to configure a Site Collection as Hub Site Collection and configure its properties.

NOTE: The AllowedToJoin parameter accepts e-mail addresses (for users, Office 365 Groups and Mail-Enabled Security groups) or DisplayName (for Security groups). However, when using DisplayName it is required that there is only one group with that name. The resource will throw an exception if there are multiple groups with that name found!

Azure AD Permissions

To authenticate via Azure Active Directory, this resource required the following Application permissions:

  • Automate
  • SharePoint
    • Sites.FullControl.All
  • Export
  • SharePoint
    • Sites.FullControl.All

NOTE: All permisions listed above require admin consent.

Examples

Example 1

This example is used to test new resources and showcase the usage of new resources being worked on. It is not meant to use as a production baseline.

Configuration Example
{
    param(
        [Parameter(Mandatory = $true)]
        [PSCredential]
        $credsGlobalAdmin
    )
    Import-DscResource -ModuleName Microsoft365DSC

    node localhost
    {
        SPOHubSite 'ConfigureHubSite'
        {
            Url                  = "https://contoso.sharepoint.com/sites/Marketing"
            Title                = "Marketing Hub"
            Description          = "Hub for the Marketing division"
            LogoUrl              = "https://contoso.sharepoint.com/sites/Marketing/SiteAssets/hublogo.png"
            RequiresJoinApproval = $true
            AllowedToJoin        = @("admin@contoso.onmicrosoft.com", "superuser@contoso.onmicrosoft.com")
            SiteDesignId         = "f7eba920-9cca-4de8-b5aa-1da75a2a893c"
            Ensure               = "Present"
            Credential           = $credsGlobalAdmin
        }
    }
}