当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] SharePoint Online:根据上次修改日期查找所有未使用的网站

作者:精品下载站 日期:2024-12-14 15:39:30 浏览:15 分类:玩电脑

SharePoint Online:根据上次修改日期查找所有未使用的网站


要求:根据上次修改日期获取所有未使用的 SharePoint Online 网站。

如何查找 SharePoint Online 网站集的上次修改日期?

如果您像大多数 SharePoint 管理员一样,您的 SharePoint Online 租户中有许多不再使用的网站,您可能需要清理网站集以优化性能并保持 SharePoint 环境整洁。删除未使用的网站可以是手动过程,但有一种简单的方法可以找到它们。使用最后修改日期作为标准,您可以轻松找到那些一段时间未使用的网站。这篇博文将向您展示如何使用 PowerShell 查找未使用的 SharePoint Online 网站。

现代 SharePoint Online 管理中心提供了租户中所有网站的清晰视图,以及“上次活动 (UTC)”列,该列提供了在网站中查看/编辑/共享列表项目或文件时的日期值。

[玩转系统] SharePoint Online:根据上次修改日期查找所有未使用的网站

PowerShell 用于查找 SharePoint Online 中未使用的网站

使用 PowerShell 获取任何 SharePoint Online 网站的修改日期怎么样?如果您在采取任何进一步操作(例如存档或删除)之前审核您的网站以确保您的网站是最新的,这非常有用。使用 PowerShell,让我们查找给定站点的上次修改日期值。


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\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
}
LastItemModifiedDate 与 LastItemUserModifiedDate:LastItemModifiedDate 和 LastItemUserModifiedDate 之间存在差异。 LastItemUserModifiedDate 属性是反映用户帐户所做更改的时间戳。 “LastItemModifiedDate”属性是系统所做更改的时间戳。

让我们稍微修改一下这个脚本,以检索给定网站集的所有子网站的上次修改日期值。


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\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

使用 PowerShell 获取非活动 SharePoint Online 网站

如何在租户中查找不活动的 SharePoint 网站集?


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\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

以下是 SharePoint Online 非活动网站报告:

[玩转系统] SharePoint Online:根据上次修改日期查找所有未使用的网站

PnP PowerShell 获取过去 30 天内未使用的网站集

我们在网站集级别提供了“LastContentModifiedDate”属性。让我们使用 PnP PowerShell 获取 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

下一步?一旦您确定了未使用的 SharePoint Online 网站,您就可以删除它们!这是我的帖子:如何删除 SharePoint Online 中的网站集?

总之,根据 SharePoint Online 中的上次修改日期查找所有未使用的网站有助于保持 SharePoint 环境井井有条并高效运行。通过使用 SharePoint 管理中心和 PowerShell,您可以检索在特定时间段内未修改的所有网站的列表。获得此信息后,您可以决定是否删除或存档不再使用的网站。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯