SharePoint Online: ¿Cómo aplicar la política del sitio usando PowerShell?

Requisito: aplicar la política del sitio en SharePoint Online mediante PowerShell.

¿Cómo aplicar la política del sitio de SharePoint Online usando PowerShell?

Las directivas del sitio son una excelente manera de implementar la gobernanza en SharePoint Online. La aplicación de políticas del sitio se puede realizar a través de la interfaz del navegador web de SharePoint Online; sin embargo, el uso de PowerShell puede ser más eficiente y permitir la automatización en escenarios a gran escala. En esta guía, le mostraremos cómo aplicar políticas de sitio en SharePoint Online usando PowerShell.

Crear una política de sitio en SharePoint Online

A partir de hoy, no podemos crear una nueva política de sitio a través de PowerShell. Sin embargo, podemos ahorrar tiempo si creamos una política de sitio en el centro de tipo de contenido en lugar de crear una en cada colección de sitios. Aquí se explica cómo crear una política de sitio en el centro de tipo de contenido de SharePoint Online:

  • Inicie sesión en el centro de tipo de contenido de su inquilino en https://.sharepoint.com/sites/contentTypeHub
  • Haga clic en el engranaje Configuración en la esquina superior derecha >> Elija «Configuración del sitio».
  • Haga clic en el enlace «Políticas del sitio» en la sección «Administración de la colección de sitios».
  • Cree una nueva política según el requisito. Creé una política que hace que la colección de sitios sea de solo lectura seleccionando «No cerrar ni eliminar el sitio automáticamente» y marcando «La colección de sitios será de solo lectura cuando esté cerrada».
  • Una vez que se crea la política del sitio, debe publicarla en las colecciones de sitios. En la página Políticas del sitio del concentrador de tipo de contenido, haga clic en el enlace «Administrar publicación para esta política» junto a la política del sitio que acaba de crear.
  • Elija la opción «Publicar» o «Volver a publicar» para enviar la política de su sitio a todas las colecciones de sitios de SharePoint Online.
  • Una vez que publica, la política tarda un tiempo en aparecer en las colecciones de sitios y es posible que tenga que esperar hasta 24 horas. Una vez que se publique la política de su sitio, debería verla en la página «Política del sitio» de la colección de sitios de destino.

    Active la función «Política del sitio», si aún no está activada

    La función «Política del sitio» debe activarse en el nivel de la colección de sitios para aplicar la Política. Si aún no está activado (en los sitios de grupo, ¡está deshabilitado de manera predeterminada!), siga estos pasos:

  • Vaya a Configuración >> Configuración del sitio >> Haga clic en el enlace «Características de la colección de sitios».
  • Haga clic en el botón «Activo» para la función de política del sitio.
  • Aplicar la política del sitio a la colección de sitios

    Aplicar una política de sitio usando la interfaz web es bastante simple. Vaya a Configuración del sitio para aplicar la política del sitio y haga clic en el enlace «Cierre y eliminación del sitio» en Administración del sitio. Seleccione la política del sitio que creó y haga clic en el botón «Aceptar». Vuelva a la página «Cierre y eliminación del sitio» para hacer clic en el botón «Cerrar este sitio ahora» para cerrar una colección de sitios. La política de sitio seleccionada se aplicará después de que se cierre una colección de sitios.

    PowerShell para aplicar la política del sitio a la colección de sitios:

    De acuerdo, cuando necesite aplicar una política de sitio para una gran cantidad de sitios, podemos usar PowerShell en lugar de la interfaz de usuario web. Una vez que la política del sitio esté disponible en los sitios de destino, podemos aplicarla a la colección de sitios a través de PowerShell. Aquí está el script CSOM PowerShell para aplicar:

    #Load SharePoint Online CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.Office.Client.Policy.dll"  #Parameters €SiteURL = "https://crescent.sharepoint.com/sites/Marketing" €PolicyName = "Set Site Read-Only"  #Setup Credentials to connect €Cred = Get-Credential       #Setup the context €Ctx = New-Object Microsoft.SharePoint.Client.ClientContext(€SiteURL) €Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials(€Cred.UserName,€Cred.Password)  #Get the Web €Web = €Ctx.Web €Ctx.Load(€Web) €Ctx.ExecuteQuery()  #Get Site Policies €Policies = [Microsoft.SharePoint.Client.InformationPolicy.ProjectPolicy]::GetProjectPolicies(€Ctx, €Web) €Ctx.Load(€Policies) €Ctx.ExecuteQuery()  #Get the Policy to Apply  €SitePolicy =  €Policies | Where -Property Name -eq €PolicyName If(€SitePolicy) {     #Apply the policy     [Microsoft.SharePoint.Client.InformationPolicy.ProjectPolicy]::ApplyProjectPolicy(€Ctx, €Web, €SitePolicy)     €Web.Update()     €Ctx.ExecuteQuery()          #Close the Site     [Microsoft.SharePoint.Client.InformationPolicy.ProjectPolicy]::CloseProject(€Ctx,€Web)     €Ctx.ExecuteQuery()      Write-host "Site Policy has been Applied & Site Closed Successfully!" -f Green } 

    Para abrir el sitio nuevamente, use lo siguiente:

    [Microsoft.SharePoint.Client.InformationPolicy.ProjectPolicy]::UnArchiveSite(€ctx,€SiteURL) 

    PnP PowerShell para aplicar la política del sitio en SharePoint Online

    Ahora, usemos PnP PowerShell para activar la función «Política del sitio» en la colección de sitios si aún no está activada, y luego apliquemos la «Política del sitio» a la colección de sitios dada.

    #Apply Site Policy for a Site collection Function Apply-PnPSitePolicy([String]€SiteUrl, [String]€PolicyName) {     #Connect to the Site      Connect-PnPOnline -Url €SiteUrl -Interactive      #Check if "Site Policy" Feature is active     €SitePolicyFeature = Get-PnPFeature -Identity "2fcd5f8a-26b7-4a6a-9755-918566dba90a" -Scope Site -Web €SiteUrl     If(€SitePolicyFeature.DefinitionId -eq €null)     {         #Activate "Site Policy" Feature for the site collection         Enable-PnPFeature -Identity "2fcd5f8a-26b7-4a6a-9755-918566dba90a" -Scope Site         Write-Host "Site Policy Feature is Activated at €(€SiteUrl)" -ForegroundColor Green     }          #Get Policy to Activate     €SitePolicyToActivate = Get-PnPSitePolicy -Name €PolicyName | Select-Object -Property Name     If (€SitePolicyToActivate)     {         #Apply Site Policy         Set-PnPSitePolicy -Name €PolicyName          #Close the site         Set-PnPSiteClosure -State Closed          Write-Host "Site Policy Applied to €(€SiteUrl)" -ForegroundColor Green     }     Else     {         write-Host "Site Policy '€(€PolicyName)' not found in Site €(€SiteUrl)" -ForegroundColor Yellow     } }  #Parameters €SiteURL = "https://crescent.sharepoint.com/sites/Purchase" €PolicyName= "Set Site Read-Only"  #Call the function to apply site policy Apply-PnPSitePolicy -SiteUrl €SiteURL -PolicyName €PolicyName 

    Si acaba de activar la función «Política del sitio», las políticas creadas en el centro de tipo de contenido no se mostrarán inmediatamente en las colecciones de sitios. Puede que tenga que esperar hasta 24 horas.