Wird ein Benutzerkonto in einen neuen Tenant migriert, oder erhält die Person ein neues Konto, kann es von Vorteil sein zu kennen welche Dateien im OneDrive geteilt sind. In dem Beitrag betrifft es nur OneDrive for Business.
- Die Person kann die Dateien über den Export kontrollieren und bei Bedarf im neuen OneDrive schnell wieder teilen.
- Der Export kann helfen eine allgemeine Zusammenfassung über geteilte Dateien und Ordner im OneDrive zu erhalten.
Im OneDrive gibt es eine Übersicht Shared by you. Exportieren lässt sich die Auswertung im Web nicht.
Für die Anzeige ruft OneDrive die SharePoint REST API OneDriveSharedItems ab.
Ich erstellte deshalb das PowerShell Command Get-TAOneDriveSharedItems, um mithilfe der SharePoint REST API und Microsoft Graph APIs Informationen über geteilte OneDrive Dateien aufzubereiten.
Was sammelt Get-TAOneDriveSharedItems?
Generell alle geteilten Dateien und Ordner im OneDrive des ausgewählten (internen) Kontos. Bei geteilten Ordnern sind untergeordnete Inhalte automatisch geteilt, sie werden ebenfalls erfasst.
In der Zusammenfassung sind folgende Informationen inkludiert.
- OneDrive Pfad zur geteilten Datei.
- Geteilter Link zur Datei (ein Empfänger kann über diesen Link auf die geteilte Datei zugreifen).
- Mit welchem Sharing Scope eine Datei geteilt ist. Es gibt drei mögliche Scopes:
- Anyone
- People in Organization with the link
- Specific people
- Ob eine Datei an interne, externe oder interne und externe Personen geteilt ist.
- Mit wem die Datei geteilt ist oder wurde.
- Geteilt ist bedeutet jemand hat eine Datei mit “People in Organization with the link” geteilt und eine Person in der Organisation hat den Link/die Datei geöffnet.
- Geteilt wurde ist für “Specific people” relevant. Die Datei wurde mit internen oder externen Personen (einer Mailadresse) geteilt.
- Falls vorhanden, an welche Mailadresse die Datei geteilt wurde. Bei externen Personen anonymisiert die Zusammenfassung die Mailadresse.
- Mit welchen Berechtigungen eine Datei geteilt ist (Lese- oder Schreibrechte).
- Ob beim Teilen der Download blockiert wurde.
- Ob beim Teilen ein Passwort gesetzt wurde (nur für Sharing Scope Anyone).
- Ob die geteilte Datei ein Ablaufdatum hat und welches (nur für Sharing Scope Anyone).
- FileID, für weitere Abfragen über Microsoft Graph.
- SharingID, für weitere Abfragen über Microsoft Graph.
Welche Anforderungen gibt es?
- Du benötigst folgende PowerShell Module:
- Vorübergehend PowerShell 7, oder PnP.PowerShell Version 1.12.0 (aufgrund eines aktuellen Fehlers von PnP.PowerShell mit PowerShell 5)
- Azure App Registration mit folgenden Berechtigungen:
- Microsoft Graph > Delegated > User.Read
- Microsoft Graph > Application > Sites.Read.All (für die Abfrage von Informationen über Dateien und Ordner)
- Microsoft Graph > Application > Domain.Read.All (für die Bewertung interne oder externe Person)
- SharePoint > Application > Sites.FullControl.All (da der Zugriff auf fremde OneDrives über die SharePoint REST API nur über administrative Berechtigungen möglich ist muss es leider FullControl sein)
Ausführung von Get-TAOneDriveSharedItems
Beachte die Dokumentation für Get-TAOneDriveSharedItems und lade das Command aus meinem GitHub Repo. Verbinde dich dann über Connect-MgGraph mit deiner Azure App zu deinem Tenant.
Import-Module Microsoft.Graph.Authentication
Connect-MgGraph -ClientID <AzureAppID> -TenantId <TenandID> -CertificateThumbprint <CertificateThumbprint>
Get-TAOneDriveSharedItems -UPN <UserPrincipalName> -Export # Zusammenfassung wird in deinen lokalen Documents-Ordner exportiert, Mailadressen von externen Personen anonymisiert
Die Zusammenfassung wird exportiert und lässt sich mit Excel weiterbearbeiten.