Exportieren Sie den OneDrive-Nutzungsbericht in Microsoft 365

Benutzer können viel Platz in ihrem OneDrive-Speicher beanspruchen. Mit einem OneDrive-Größenbericht können Sie sehen, welche Benutzer fast das Limit erreicht haben. Anschließend können Sie den OneDrive-Speicher aktualisieren oder ihn auffordern, ihn zu bereinigen. In diesem Artikel erfahren Sie, wie Sie einen OneDrive-Nutzungsbericht in Microsoft 365 exportieren.

Ermitteln Sie die genutzte Größe des OneDrive-Speichers in Microsoft 365

Führen Sie die folgenden Schritte aus, um die für einen Benutzer in Microsoft 365 verwendete OneDrive-Speichergröße zu ermitteln:

  1. Melden Sie sich anMicrosoft 365 Admin Center
  2. Klicken Sie aufBenutzer > Aktive Benutzer
  3. Klicken Sie aufBenutzeraus der Liste
  1. Klicken Sie aufOneDrive
  2. Überprüfen Sie dieSpeicher genutztAbschnitt

Der Vorteil besteht darin, dass der genutzte OneDrive-Speicher innerhalb weniger Minuten mit Daten gefüllt ist.

Um den OneDrive-Nutzungsbericht für alle Benutzer in Microsoft 365 zu exportieren, führen Sie die folgenden Schritte aus:

  1. Melden Sie sich anMicrosoft 365 Admin Center
  2. Klicken Sie aufEinstellungen > Organisationseinstellungen > Dienste
  1. KlickenBerichte
  2. Deaktivieren Sie das KontrollkästchenZeigen Sie verborgene Benutzer-, Gruppen- und Site-Namen in allen Berichten an
  3. KlickenSpeichern
  1. KlickenBerichte > Nutzung
  2. KlickenOneDriveund scrollen Sie nach unten
  3. Klicken Sie aufExportum die CSV-Datei des OneDrive-Nutzungsberichts herunterzuladen

Der Nachteil dieses Berichts besteht darin, dass die Daten nicht sofort aktuell sind. Die Berichte stehen innerhalb von 48 Stunden zur Verfügung.

Exportieren Sie den OneDrive-Nutzungsbericht mit dem PowerShell-Skript

Das PowerShell-Skript „Get-OneDriveSizeReport.ps1“ ruft die OneDrive-Größe für alle Benutzer ab und gibt die folgenden Informationen aus:

  1. Eigentümer
  2. UPN
  3. SiteId
  4. Ist gelöscht
  5. LetzteAktivität
  6. FileCount
  7. ActiveFileCount
  8. QuoteGB
  9. GebrauchtGB
  10. Prozentuale Nutzung
  11. Stadt
  12. Land
  13. Abteilung
  14. Berufsbezeichnung

Notiz:Das Skript prüft, ob die verborgenen Benutzerdaten in den Berichten in der Organisation aktiviert sind. Wenn dies der Fall ist, wird es vorübergehend deaktiviert und nach Abschluss des Berichts wieder aktiviert.

Um den OneDrive-Nutzungsbericht für alle Benutzer mit PowerShell zu exportieren, führen Sie die folgenden Schritte aus:

Schritt 1. Installieren Sie Microsoft Graph PowerShell

Führen Sie Windows PowerShell als Administrator aus und installieren Sie Microsoft Graph PowerShell.

Install-Module Microsoft.Graph -Force

Wichtig:Aktualisieren Sie immer auf die neueste Version des Microsoft Graph PowerShell-Moduls, bevor Sie ein Cmdlet oder Skript ausführen, um Fehler und falsche Ergebnisse zu vermeiden.

Schritt 2. Laden Sie das PowerShell-Skript „Get-OneDriveSizeReport“ herunter

Erstellen Sie zwei Ordner auf dem(C:)fahren:

  • Skripte
  • Temp

Laden Sie das PowerShell-Skript „Get-OneDriveSizeReport.ps1“ herunter und platzieren Sie es imC:SkripteOrdner. Das Skript exportiert alle OneDrive-Größen des Benutzers in einen Bericht imC:TempOrdner.

Stellen Sie sicher, dass die Datei entsperrt ist, um Fehler beim Ausführen des Skripts zu vermeiden. Lesen Sie mehr im Artikel Fehler „Nicht digital signiert“ beim Ausführen des PowerShell-Skripts.

Eine andere Möglichkeit besteht darin, den folgenden Code zu kopieren und in Notepad einzufügen. Geben Sie ihm den NamenGet-OneDriveSizeReport.ps1und legen Sie es in dieC:SkripteOrdner.

<#
    .SYNOPSIS
    Get-OneDriveSizeReport.ps1

    .DESCRIPTION
    Export OneDrive storage usage in Microsoft 365 to CSV file with PowerShell.

    .LINK
    www.alitajran.com/export-onedrive-usage-report/

    .NOTES
    Written by: ALI TAJRAN
    Website:    www.alitajran.com
    LinkedIn:   linkedin.com/in/alitajran

    .CHANGELOG
    V1.00, 08/10/2024 - Initial version
#>

# Connect to Microsoft Graph with necessary permissions
Connect-MgGraph -NoWelcome -Scopes "User.Read.All", "Reports.Read.All", "ReportSettings.ReadWrite.All"

# Define file paths
$CSVOutputFile = "C:tempOneDriveSizeReport.csv"
$TempExportFile = "C:tempTempExportFile.csv"

# Remove the temporary export file if it exists
if (Test-Path $TempExportFile) {
    Remove-Item $TempExportFile
}

# Check if tenant reports have concealed user data, and adjust settings if necessary
if ((Get-MgAdminReportSetting).DisplayConcealedNames -eq $true) {
    $Parameters = @{ displayConcealedNames = $false }
    Write-Host "Unhiding concealed report data to retrieve full user information..." -ForegroundColor Cyan
    Update-MgAdminReportSetting -BodyParameter $Parameters
    $ConcealedFlag = $true
}
else {
    $ConcealedFlag = $false
    Write-Host "User data is already fully visible in the reports." -ForegroundColor Cyan
}

# Retrieve detailed user account information
Write-Host "Fetching user account details from Microsoft Graph..." -ForegroundColor Cyan

# Define user properties to be retrieved
$Properties = 'Id', 'displayName', 'userPrincipalName', 'city', 'country', 'department', 'jobTitle', 'officeLocation'

# Define parameters for retrieving users with assigned licenses
$userParams = @{
    All              = $true
    Filter           = "assignedLicenses/`$count ne 0 and userType eq 'Member'"
    ConsistencyLevel = 'Eventual'
    CountVariable    = 'UserCount'
    Sort             = 'displayName'
}

# Get user account information and select the desired properties
$Users = Get-MgUser @UserParams -Property $Properties | Select-Object -Property $Properties

# Create a hashtable to map UPNs (User Principal Names) to user details
$UserHash = @{}
foreach ($User in $Users) {
    $UserHash[$User.userPrincipalName] = $User
}

# Retrieve OneDrive for Business site usage details for the last 30 days and export to a temporary CSV file
Write-Host "Retrieving OneDrive for Business site usage details..." -ForegroundColor Cyan
Get-MgReportOneDriveUsageAccountDetail -Period D30 -Outfile $TempExportFile

# Import the data from the temporary CSV file
$ODFBSites = Import-CSV $TempExportFile | Sort-Object 'User display name'

if (-not $ODFBSites) {
    Write-Host "No OneDrive sites found." -ForegroundColor Yellow
    return
}

# Calculate total storage used by all OneDrive for Business accounts
$TotalODFBGBUsed = [Math]::Round(($ODFBSites.'Storage Used (Byte)' | Measure-Object -Sum).Sum / 1GB, 2)

# Initialize a list to store report data
$Report = [System.Collections.Generic.List[Object]]::new()

# Populate the report with detailed information for each OneDrive site
foreach ($Site in $ODFBSites) {
    $UserData = $UserHash[$Site.'Owner Principal name']
    $ReportLine = [PSCustomObject]@{
        Owner             = $Site.'Owner display name'
        UserPrincipalName = $Site.'Owner Principal name'
        SiteId            = $Site.'Site Id'
        IsDeleted         = $Site.'Is Deleted'
        LastActivityDate  = $Site.'Last Activity Date'
        FileCount         = [int]$Site.'File Count'
        ActiveFileCount   = [int]$Site.'Active File Count'
        QuotaGB           = [Math]::Round($Site.'Storage Allocated (Byte)' / 1GB, 2)
        UsedGB            = [Math]::Round($Site.'Storage Used (Byte)' / 1GB, 2)
        PercentUsed       = [Math]::Round($Site.'Storage Used (Byte)' / $Site.'Storage Allocated (Byte)' * 100, 2)
        City              = $UserData.city
        Country           = $UserData.country
        Department        = $UserData.department
        JobTitle          = $UserData.jobTitle
    }
    $Report.Add($ReportLine)
}

# Export the report to a CSV file and display the data in a grid view
$Report | Sort-Object UsedGB -Descending | Export-CSV -NoTypeInformation -Encoding utf8 $CSVOutputFile
$Report | Sort-Object UsedGB -Descending | Out-GridView -Title OneDriveUsageReport

Write-Host ("Current OneDrive for Business storage consumption is {0} GB. Report saved to {1}" -f $TotalODFBGBUsed, $CSVOutputFile) -ForegroundColor Cyan

# Reset tenant report data concealment setting if it was modified earlier
if ($ConcealedFlag -eq $true) {
    Write-Host "Re-enabling data concealment in tenant reports..." -ForegroundColor Cyan
    $Parameters = @{ displayConcealedNames = $true }
    Update-MgAdminReportSetting -BodyParameter $Parameters
}

# Clean up the temporary export file
if (Test-Path $TempExportFile) {
    Remove-Item $TempExportFile
    Write-Host "Temporary export file removed." -ForegroundColor Cyan
}
  • Linie 24/25:Bearbeiten Sie den CSV-Dateipfad

Schritt 3: Führen Sie das PowerShell-Skript „Get-OneDriveSizeReport“ aus

Führen Sie den folgenden Befehl aus, um das auszuführenGet-OneDriveSizeReport.ps1PowerShell-Skript.

c:scripts.Get-OneDriveSizeReport.ps1

Die folgende Ausgabe erscheint.

Unhiding concealed report data to retrieve full user information...
Fetching user account details from Microsoft Graph...
Retrieving OneDrive for Business site usage details...
Current OneDrive for Business storage consumption is 124,19 GB. Report saved to C:tempOneDriveSizeReport.csv
Re-enabling data concealment in tenant reports...
Temporary export file removed.

Die Berichtsausgabe wird in einem separaten Fenster (Out-GridView) an eine interaktive Tabelle gesendet.

Schritt 4. Überprüfen Sie die CSV-Datei des OneDrive-Nutzungsberichts

Das PowerShell-Skript „Get-OneDriveSizeReport.ps1“ exportiert alle OneDrive-Größen von Microsoft 365-Benutzern in eine CSV-Datei.

Finden Sie die DateiOneDriveSizeReport.csvim WegC:Temp.

Öffnen Sie die CSV-Datei mit Ihrer Lieblingsanwendung. In unserem Beispiel ist es Microsoft Excel.

Das ist es!

Notiz:Ab Januar 2025 erhebt Microsoft von Organisationen Gebühren für die nicht lizenzierte Speicherung von OneDrive-Konten. Eine hervorragende Möglichkeit herauszufinden, welche Konten nicht lizenziert sind, ist:Erhalten Sie einen Bericht über nicht lizenzierte OneDrive-Benutzerkonten.

Abschluss

Sie haben gelernt, wie Sie einen OneDrive-Nutzungsbericht in Microsoft 365 exportieren. Wenn Sie die OneDrive-Größendaten für einen Benutzer sofort überprüfen möchten, suchen Sie den Benutzer im Microsoft 365 Admin Center. Um einen Bericht mit weiteren Details zu erhalten, verwenden Sie den Berichtsabschnitt im Microsoft 365 Admin Center oder verwenden Sie PowerShell. Der Nachteil besteht darin, dass Sie 48 Stunden warten müssen, bis die Daten verfügbar sind.

Empfohlene Lektüre:Exportieren Sie Datum und Uhrzeit der letzten Kennwortänderung von Microsoft 365-Benutzern

Hat Ihnen dieser Artikel gefallen? Möglicherweise gefallen Ihnen auch Microsoft 365-Sicherheitsempfehlungen mit PowerShell-Skript. Vergessen Sie nicht, uns zu folgen und diesen Artikel zu teilen.

Related Posts