none
PowerShell - Sharepoint Dokumentenbibliotheken Elemente zählen RRS feed

  • Frage

  • Hallo,

    Das Ergebniss:

    ich möchte in meinem Sharepoint https://xxx.sharepoint.com die Anzahl der Verzeichnisse und Dateien in allen vorhandenen Dokumentenbibliotheken zählen.

    Das Ergebnis soll eine PowerShell Skript sein, dass sich über einen Admin Account auf meiner Sharepoint Seite einloggt
    und dort die Dokumentenbibliotheken in ein Array speichert.

    Im Anschluss soll das Array durch eine foreach Schleife durchlaufen werden und alle Verzeichnisse und Dateien zählen.
    Falls die Anzahl der Elemente die Zahl 4800 überschreitet soll eine Mail verschickt werden.

    Mein Problem:

      Ich schaffe es einfach nicht die sämtliche Dokumentenbibliotheken in ein Array zu packen und danach die Anzahl der Dateien und
      Verzeichnisse zählen.

    Vielen Dank schon mal für die Hilfe

    Mit freundlichen Grüßen

    Steffen Kerz

    Dienstag, 1. März 2016 08:53

Antworten

  • Hallo Steffen,

    ein Ansatz:

    Add-Type -Path "C:\Scripts\Microsoft.SharePointOnline.CSOM.16.1.4915.1200\lib\net45\Microsoft.SharePoint.Client.dll"
    Add-Type -Path "C:\Scripts\Microsoft.SharePointOnline.CSOM.16.1.4915.1200\lib\net45\Microsoft.SharePoint.Client.Runtime.dll"
    
    $user = "xxxxx"
    $pass = "xxxx"
    $url = "https://xxxx.sharepoint.com"
    $dictLists = @{} 
    $ctx = New-Object "Microsoft.SharePoint.Client.ClientContext"($url)
    $cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($user,$(ConvertTo-SecureString $pass -AsPlainText -Force))
    
    $ctx.Credentials = $cred
    $lists = $ctx.Web.Lists
    $ctx.load($lists)
    $ctx.ExecuteQuery()
    foreach($list in $lists) {
        $ctx.load($list)
        $ctx.ExecuteQuery()
        $dictLists.Add($list.Title, $list.ItemCount)
    }
    
    $dictLists.Keys|% {
        Write-Host "$_ - $($dictLists[$_])"
    }

    Die Libs können am einfachsten über nuget per "nuget.exe install Microsoft.SharePointOnline.CSOM" installiert werden.

    Die Emailfunktion kann über Send-MailMessage und eine if schleife eingebaut werden.

    Man kann die Daten auch in einem Abruf anfordern, dass würde das Ganze jedoch zu kompliziert für einen Forenpost machen.

    Viele Grüße
    Andrei

    Dienstag, 1. März 2016 20:05