0 3 Minuten 1 Monat

Anforderung: Alle Dokumente einer SharePoint-Websitesammlung im CSV-Format abrufen.

PowerShell-Befehl zum Abrufen des Dokumenteninventars einer SharePoint-Website:

SharePoint-Websitesammlungen füllen sich im Laufe der Zeit oft mit zahlreichen Dateien und Dokumenten. Ein strukturiertes Dokumenteninventar ermöglicht es Ihnen, den Überblick zu behalten – insbesondere darüber, welche Dateien wo abgelegt sind. In diesem Blogbeitrag erfahren Sie, wie Sie mit PowerShell ein vollständiges Inventar aller Dokumente Ihrer SharePoint-Websites erstellen und die Ergebnisse übersichtlich in eine CSV-Datei exportieren.

Hier ist der PowerShell-Befehl, der alle Dokumentdetails von einer bestimmten Website abruft:

Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
 
#Parameter
$SiteURL = "https://sharepoint.one/sites/primestar"
$ReportFile =  "C:\Temp\SP2016_Dokumenten-Inventar-Report.csv"
 
#Funktion zum Abrufen des Dokumenteninventarberichts:
Function Export-DocsInventory($List)
{
    #Array zur Speicherung der Speicherdaten für alle Dateien
    $DocInventoryCollection = @()
     
    #Anfrage zur Stapelverarbeitung
    $Query = New-Object Microsoft.SharePoint.SPQuery
    $Query.ViewAttributes = "Scope='Recursive'"
    $Query.RowLimit = 5000
  
    $Counter = 1
    Do {
        #Die durch die Abfrage definierten Listenelemente abrufen:
        $ListItems = $List.GetItems($Query)
        $Query.ListItemCollectionPosition = $ListItems.ListItemCollectionPosition
  
        #Durchlaufe jedes Listenelement:         
        ForEach($Item in $ListItems)
        {
            Write-Host "Processing File: $($File.Name) ($Counter of $($List.ItemCount))"
            #Dateiinventar abrufen:
            $File = $Item.File
            $FileSize = $File.TotalLength
         
            $DocInventory = New-Object PSObject  
            $DocInventory | Add-Member -type NoteProperty -name "File Name" -value $File.Name
            $DocInventory | Add-Member -type NoteProperty -name "File Size(KB)" -value $($FileSize/1KB)
            $DocInventory | Add-Member -type NoteProperty -name "Created on" -value $File.TimeCreated 
            $DocInventory | Add-Member -type NoteProperty -name "Last Modified" -value $File.TimeLastModified 
            $DocInventory | Add-Member -type NoteProperty -name "Created by" -value $File.Author.Name        
            $DocInventory | Add-Member -type NoteProperty -name "Parent Folder" -value $File.ParentFolder.URL
            $DocInventory | Add-Member -type NoteProperty -name "URL" -value $File.URL 
            $DocInventoryCollection += $DocInventory
            $Counter++
        }
    } While ($Query.ListItemCollectionPosition -ne $Null)
  
    #Daten in eine CSV-Datei exportieren:
    $DocInventoryCollection | Export-csv $ReportFile -notypeinformation -Append
}
  
#Websitesammlung abrufen:
$Site = Get-SPSite $SiteURL
  
$ResultData = @()
If(Test-Path $ReportFile) { Remove-Item $ReportFile }
 
#Alle Websites der Websitesammlung abrufen:
Foreach($web in $Site.AllWebs)
{
    Write-host -f Yellow "Processing Site: "$Web.URL
   
    #Alle Dokumentbibliotheken abrufen – Ausgeblendete und Systembibliotheken ausschliessen:
    $DocumentLibraries = $web.lists | Where-Object { ($_.hidden -eq $false) -and ($_.IsSiteAssetsLibrary -eq $false)  -and ($_.BaseType -eq "DocumentLibrary")}
  
    #Alle Listen und Bibliotheken durchlaufen
    ForEach ($Library in $DocumentLibraries)
    {
        #Rufen Sie die Funktion auf, um Daten zu erhalten:
        Export-DocsInventory $Library
    }
}

Zusammenfassend lässt sich sagen, dass das Auslesen aller Dokumente einer SharePoint-Websitesammlung eine effiziente Grundlage für die Verwaltung und Organisation von Dateien innerhalb einer Organisation bietet. Mit PowerShell können Sie problemlos Dokumentlisten aus mehreren Websitesammlungen und Unterwebsites abrufen. Die exportierte CSV-Datei lässt sich anschliessend in Microsoft Excel weiter filtern und sortieren, sodass Sie Ihre Daten gezielt analysieren und strukturieren können.

Um einen Bericht über alle Dokumente in einer SharePoint Online-Websitesammlung zu erstellen, verwenden Sie: SharePoint Online: Abrufen des gesamten Dokumenteninventars einer Website mithilfe von PowerShell

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.