Weboldal keresés

SharePoint Online: Webhelydokumentum-leltár (könyvtár, mappa, almappa és fájlok) jelentés a PowerShell használatával


Követelmény: Hozzon létre egy leltárjelentést, amely tartalmazza az összes dokumentumtárat, mappát, almappát és fájlrészletet egy SharePoint Online webhelygyűjteményből.

SharePoint Online: Webhelyleltár jelentés a PowerShell használatával

Létre kell hoznia egy leltári jelentést a SharePoint Online webhely összes dokumentumáról? Nos, ehhez használhatja a PowerShellt! Ebben a blogbejegyzésben bemutatom, hogyan hozhat létre leltári jelentést a webhely összes dokumentumáról PowerShell-szkript segítségével. Valamint az egyes dokumentumokra vonatkozó információk, például a fájl neve, a fájl típusa, az utolsó módosítás dátuma stb.

Meg akartuk találni a fájlok, mappák és almappák számát egy SharePoint Online webhely egyes dokumentumtáraiban. Ez a PowerShell-szkript kibontja az összes dokumentumkönyvtárat, mappát, almappát és fájlt egy adott SharePoint Online-webhelygyűjteményből egy CSV-jelentésbe.


#Function to collect site Inventory
Function Get-PnPSiteInventory
{
[cmdletbinding()]
   param([parameter(Mandatory = $true, ValueFromPipeline = $true)] $Web)

    #Skip Apps
    If($Web.url -notlike "$SiteURL*") { return }
   
    Write-host "Getting Site Inventory from Site '$($Web.URL)'" -f Yellow
 
    #Exclude certain libraries
    $ExcludedLists = @("Form Templates", "Preservation Hold Library") 
                               
    #Get All Document Libraries from the Web
    $Lists= Get-PnPProperty -ClientObject $Web -Property Lists
    $Lists | Where-Object {$_.BaseType -eq "DocumentLibrary" -and $_.Hidden -eq $false -and $_.Title -notin $ExcludedLists -and $_.ItemCount -gt 0} -PipelineVariable List | ForEach-Object {
        #Get Items from List   
        $global:counter = 0;
        $ListItems = Get-PnPListItem -List $_ -PageSize $Pagesize -Fields Author, Created -ScriptBlock `
                 { Param($items) $global:counter += $items.Count; Write-Progress -PercentComplete ($global:Counter / ($_.ItemCount) * 100) -Activity "Getting Inventory from '$($_.Title)'" -Status "Processing Items $global:Counter to $($_.ItemCount)";}
        Write-Progress -Activity "Completed Retrieving Inventory from Library $($List.Title)" -Completed
     
            #Get Root folder of the List
            $Folder = Get-PnPProperty -ClientObject $_ -Property RootFolder
            
            $SiteInventory = @()
            #Iterate through each Item and collect data           
            ForEach($ListItem in $ListItems)
            {  
                #Collect item data
                $SiteInventory += New-Object PSObject -Property ([ordered]@{
                    SiteName  = $Web.Title
                    SiteURL  = $Web.URL
                    LibraryName = $List.Title
                    ParentFolderURL = $Folder.ServerRelativeURL
                    Name = $ListItem.FieldValues.FileLeafRef
                    Type = $ListItem.FileSystemObjectType
                    ItemRelativeURL = $ListItem.FieldValues.FileRef
                    CreatedBy = $ListItem.FieldValues.Author.Email
                    CreatedAt = $ListItem.FieldValues.Created
                    ModifiedBy = $ListItem.FieldValues.Editor.Email
                    ModifiedAt = $ListItem.FieldValues.Modified
                })
            }
            #Export the result to CSV file
            $SiteInventory | Export-CSV $CSVReport -NoTypeInformation -Append
        }
}

#Parameters
$SiteURL = "https://crescent.SharePoint.com/sites/Marketing"
$CSVReport = "C:\Temp\SiteInventory.csv"
$Pagesize = 2000

#Connect to Site collection
Connect-PnPOnline -Url $SiteURL -Interactive

#Delete the Output Report, if exists
If (Test-Path $CSVReport) { Remove-Item $CSVReport }    
  
#Call the Function for all Webs
Get-PnPSubWeb -Recurse -IncludeRootWeb | ForEach-Object { Get-PnPSiteInventory $_ }
   
Write-host "Site Inventory Report has been Exported to '$CSVReport'"  -f Green

A végrehajtás után ez a szkript létrehoz egy CSV-fájlt a következő formátumban:

Ha dokumentumkészlet-jelentést kell létrehoznia egy egyetlen dokumentumtárhoz, használja ezt a szkriptet: SharePoint Online: PowerShell a dokumentumtár összes fájlkészletének listázásához

Összefoglalva, a dokumentumleltár létrehozása a SharePointban időigényes feladat lehet, különösen akkor, ha több dokumentumtárral és több ezer dokumentummal rendelkezik. A PowerShell használatával azonban automatizálhatja a folyamatot, és gyorsan és hatékonyan hozhat létre dokumentumleltárt. Az oktatóanyagban található szkript használatával gyorsan és egyszerűen létrehozhat egy dokumentumleltárt, amely olyan fontos információkat tartalmaz, mint az egyes dokumentumok címe, URL-címe, könyvtár címe, szerzője és létrehozásának dátuma. Ez a leltár különféle célokra használható, például auditálásra, megfelelőségre és jelentéskészítésre.

Kapcsolódó cikkek