SharePoint Online: busque todos los sitios no utilizados según la fecha de la última modificación
Requisito: Obtener todos los sitios de SharePoint Online no utilizados según la última fecha de modificación.
¿Cómo encontrar la fecha de la última modificación de las colecciones de sitios de SharePoint Online?
Si es como la mayoría de los administradores de SharePoint, tiene varios sitios en su inquilino de SharePoint Online que ya no se utilizan y es posible que desee limpiar sus colecciones de sitios para optimizar el rendimiento y mantener ordenado su entorno de SharePoint. Eliminar sitios no utilizados puede ser un proceso manual, pero existe una manera fácil de encontrarlos. Utilizando como criterio la fecha de la última modificación, puede encontrar fácilmente aquellos sitios que no se han utilizado durante algún tiempo. Esta publicación de blog le mostrará cómo usar PowerShell para encontrar sitios de SharePoint Online no utilizados.
El moderno centro de administración en línea de SharePoint ofrece una vista clara de todos los sitios del inquilino, junto con la columna "Última actividad (UTC)" que proporciona una fecha con valor cuando los elementos de la lista o los archivos se ven, editan o comparten en el sitio.
PowerShell para buscar sitios no utilizados en SharePoint Online
¿Qué tal obtener la fecha de modificación de cualquier sitio de SharePoint Online usando PowerShell? Esto es útil si está auditando sus sitios para asegurarse de que estén actualizados antes de realizar otras acciones, como archivarlos o eliminarlos. Usando PowerShell, busquemos el valor de la fecha de última modificación de un sitio determinado.
#Load SharePoint 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"
#Variables
$SiteURL ="https://crescent.sharepoint.com/sites/marketing"
Try {
#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 the last modified date of the web
Write-host "Last Modified:"$Web.LastItemUserModifiedDate
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
}
Modifiquemos un poco este script para recuperar el valor de la fecha de última modificación de todos los subsitios de la colección de sitios determinada.
#Load SharePoint 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"
#Variables
$SiteURL ="https://crescent.sharepoint.com/sites/marketing"
#Get Credentials to connect
$Cred= Get-Credential
Function Get-SPOSiteLastModified($SiteURL)
{
Try {
#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 site
$Web = $Ctx.web
$Ctx.Load($Web)
$Ctx.ExecuteQuery()
#Get the last modified date of the site
Write-host "Last Modified Date of $($SiteURL):"$Web.LastItemUserModifiedDate
#Get Subsites of the site
$Webs = $Web.Webs
$Ctx.Load($Webs)
$Ctx.ExecuteQuery()
ForEach($SubWeb in $Webs)
{
#Call the function to get subsite's last modified date
Get-SPOSiteLastModified $SubWeb.URL
}
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
}
}
#Call the function to get last modified date of a site and its subsites
Get-SPOSiteLastModified $SiteURL
Obtener sitios inactivos de SharePoint Online mediante PowerShell
¿Qué tal encontrar colecciones de sitios de SharePoint inactivas en el inquilino?
#Load SharePoint 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"
#Variables
$AdminSiteURL ="https://crescent-admin.sharepoint.com"
$CSVFile = "C:\Temp\SiteData.csv"
#Get Credentials to connect
$Cred= Get-Credential
#Connect to Admin Center
Connect-SPOService -Url $AdminSiteURL -Credential $Cred
#Get All Site Collections
$Sites = Get-SPOSite -Limit All
$SiteData = @()
#Loop through each site collection
ForEach($Site in $Sites)
{
Write-host -f Yellow "Getting Data for Site:" $Site.URL
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($Site.URL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Get the Root Web
$Web = $Ctx.web
$Ctx.Load($Web)
$Ctx.ExecuteQuery()
#Get the last modified date of the site
$SiteData += New-Object PSObject -Property @{
SiteTitle = $Web.Title
URL = $Web.Url
LastModified= $Web.LastItemUserModifiedDate
}
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
}
}
#Export the results to CSV
$SiteData | Export-CSV $CSVFile -NoTypeInformation
Aquí está el informe de sitios inactivos de SharePoint Online:
PnP PowerShell para obtener colecciones de sitios no utilizados en los últimos 30 días
Tenemos la propiedad "LastContentModifiedDate" disponible en el nivel de colección de sitios. Usemos PnP PowerShell para obtener la fecha de modificación en SharePoint Online.
$TenantAdminURL = "https://Crescent-Admin.SharePoint.com"
$TenantURL = "https://Crescent.SharePoint.com"
$DaysInActive = 30 # number of days to check since last modified
$CSVPath = "C:\Temp\InactiveSites.csv"
#Connect to Admin Center
Connect-PnPOnline -Url $TenantAdminURL -Credentials $Cred
#Get All Site collections - Exclude BOT, Video Portals and MySites
$SiteCollections = Get-PnPTenantSite -Filter "Url -like $TenantURL -and Url -notlike '-my.sharepoint.com/' -and Url -notlike '/portals/'"
#Calculate the Date
$Date = (Get-Date).AddDays(-$DaysInActive).ToString("MM/dd/yyyy")
#Get All Site collections where the content modified
$InActiveSites = $SiteCollections | Where {$_.LastContentModifiedDate -le $Date} | Select Title, Url, LastContentModifiedDate, Template, StorageMaximumLevel
#Export to CSV
$InActiveSites
$InActiveSites | Export-Csv -Path $CSVPath -NoTypeInformation
¿Próximo paso? Una vez que haya identificado los sitios de SharePoint Online no utilizados, ¡puede eliminarlos! Aquí está mi publicación: ¿Cómo eliminar una colección de sitios en SharePoint Online?
En conclusión, encontrar todos los sitios no utilizados según la última fecha de modificación en SharePoint Online puede ayudar a mantener su entorno de SharePoint organizado y funcionando de manera eficiente. Al utilizar el Centro de administración de SharePoint y PowerShell, puede recuperar una lista de todos los sitios que no se han modificado en un período de tiempo determinado. Una vez que tenga esta información, podrá decidir si eliminar o archivar los sitios que ya no están en uso.

