Microsoft 365'te OneDrive kullanım raporunu dışarı aktarma


Kullanıcılar OneDrive depolama alanlarında çok fazla yer kaplayabilir. OneDrive boyut raporuyla hangi kullanıcıların neredeyse sınıra ulaştığını görebilirsiniz. Daha sonra OneDrive depolama alanını yükseltebilir veya onlara temizlemelerini söyleyebilirsiniz. Bu makalede, Microsoft 365'te OneDrive kullanım raporunun nasıl dışarı aktarılacağını öğreneceksiniz.

Microsoft 365'te OneDrive depolama alanının kullanılan boyutunu alın

Microsoft 365'te bir kullanıcı için kullanılan OneDrive depolama boyutunu almak için aşağıdaki adımları izleyin:

  1. Microsoft 365 yönetim merkezinde oturum açın
  2. Kullanıcılar > Etkin kullanıcılar'ı tıklayın
  3. Listeden kullanıcıyı tıklayın

  1. OneDrive'ı tıklayın
  2. Kullanılan depolama alanı bölümünü kontrol edin

Avantajı, OneDrive depolama alanında kullanılan verilerin birkaç dakika içinde doldurulmasıdır.

OneDrive kullanım raporunu Microsoft 365 yönetim merkezinde dışarı aktarma

Microsoft 365'teki tüm kullanıcılar için OneDrive kullanım raporunu dışarı aktarmak için aşağıdaki adımları izleyin:

  1. Microsoft 365 yönetim merkezinde oturum açın
  2. Ayarlar > Kuruluş ayarları > Hizmetler'i tıklayın

  1. Raporlar'ı tıklayın
  2. Tüm raporlarda gizli kullanıcı, grup ve site adlarını görüntüle seçeneğinin işaretini kaldırın.
  3. Kaydet'i tıklayın

  1. Raporlar > Kullanım'ı tıklayın
  2. OneDrive'ı tıklayın ve aşağıya doğru kaydırın
  3. OneDrive kullanım raporu CSV dosyasını indirmek için Dışa Aktar'ı tıklayın

Bu raporun dezavantajı verilerin hemen güncel olmamasıdır. Raporlar 48 saat içinde kullanıma sunulur.

OneDrive kullanım raporunu PowerShell betiğiyle dışarı aktarma

Get-OneDriveSizeReport.ps1 PowerShell betiği, tüm kullanıcılar için OneDrive boyutunu alacak ve aşağıdaki bilgileri verecektir:

  1. Mal sahibi
  2. UPN
  3. Site Kimliği
  4. Silindi
  5. Son Etkinlik
  6. Dosya Sayısı
  7. Aktif Dosya Sayısı
  8. KotaGB
  9. KullanılmışGB
  10. Kullanım Yüzdesi
  11. Şehir
  12. Ülke
  13. Departman
  14. İş unvanı

Not: Komut dosyası, raporlarda gizli kullanıcı verilerinin kuruluşta etkin olup olmadığını kontrol eder. Eğer öyleyse, geçici olarak devre dışı bırakır ve rapor bittiğinde tekrar etkinleştirir.

PowerShell'e sahip tüm kullanıcılar için OneDrive kullanım raporunu dışarı aktarmak için aşağıdaki adımları izleyin:

1. Adım. Microsoft Graph PowerShell'i yükleyin

Windows PowerShell'i yönetici olarak çalıştırın ve Microsoft Graph PowerShell'i yükleyin.

Install-Module Microsoft.Graph -Force
Install-Module Microsoft.Graph.Beta -AllowClobber -Force

Önemli: Her zaman Microsoft Graph PowerShell ve Microsoft Graph Beta PowerShell modüllerini yükleyin. Bunun nedeni, bazı cmdlet'lerin henüz son sürümde mevcut olmaması ve çalışmayacak olmasıdır. Hataları ve yanlış sonuçları önlemek için bir cmdlet'i veya betiği çalıştırmadan önce her iki modülü de en son sürüme güncelleyin.

2. Adım. Get-OneDriveSizeReport PowerShell betiğini indirin

(C:) sürücüsünde iki klasör oluşturun:

  • Komut dosyaları
  • Sıcaklık

Get-OneDriveSizeReport.ps1 PowerShell betiğini indirin ve C:\Scripts klasörüne yerleştirin. Komut dosyası, tüm kullanıcıların OneDrive boyutlarını C:\Temp klasöründeki bir rapora aktaracaktır.

Komut dosyasını çalıştırırken hataları önlemek için dosyanın engellemesinin kaldırıldığından emin olun. PowerShell betiğini çalıştırırken dijital olarak imzalanmamış hata makalesinde daha fazlasını okuyun.

Diğer bir seçenek de aşağıdaki kodu kopyalayıp Not Defteri'ne yapıştırmaktır. Ona Get-OneDriveSizeReport.ps1 adını verin ve C:\Scripts klasörüne yerleştirin.

<#
    .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:\temp\OneDriveSizeReport.csv"
$TempExportFile = "C:\temp\TempExportFile.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-MgBetaAdminReportSetting).DisplayConcealedNames -eq $true) {
    $Parameters = @{ displayConcealedNames = $false }
    Write-Host "Unhiding concealed report data to retrieve full user information..." -ForegroundColor Cyan
    Update-MgBetaAdminReportSetting -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[PSCustomObject]]::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         = $Site.'File Count'
        ActiveFileCount   = $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-MgBetaAdminReportSetting -BodyParameter $Parameters
}

# Clean up the temporary export file
if (Test-Path $TempExportFile) {
    Remove-Item $TempExportFile
    Write-Host "Temporary export file removed." -ForegroundColor Cyan
}
  • Satır 24/25: CSV dosya yolunu düzenleyin

3. Adım. Get-OneDriveSizeReport PowerShell betiğini çalıştırın

Get-OneDriveSizeReport.ps1 PowerShell betiğini çalıştırmak için aşağıdaki komutu çalıştırın.

c:\scripts\.\Get-OneDriveSizeReport.ps1

Aşağıdaki çıktı görünür.

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:\temp\OneDriveSizeReport.csv
Re-enabling data concealment in tenant reports...
Temporary export file removed.

Rapor çıktısı ayrı bir pencerede (Out-GridView) etkileşimli bir tabloya gönderilir.

4. Adım. OneDrive kullanım raporu CSV dosyasını kontrol edin

Get-OneDriveSizeReport.ps1 PowerShell betiği, tüm Microsoft 365 kullanıcılarının OneDrive boyutlarını bir CSV dosyasına aktarır.

C:\temp yolunda OneDriveSizeReport.csv dosyasını bulun.

CSV dosyasını favori uygulamanızla açın. Örneğimizde Microsoft Excel var.

İşte bu!

Not: Ocak 2025'ten itibaren Microsoft, kuruluşlardan lisanssız OneDrive hesap depolama alanı için ücret alacaktır. Hangi hesapların lisanssız olduğunu öğrenmenin mükemmel bir yolu, lisanssız OneDrive kullanıcı hesapları raporu almaktır.

Devamını oku: OneDrive yönetim şablonu dosyalarını yapılandırma (ADMX/ADML) »

Çözüm

Microsoft 365'te OneDrive kullanım raporunu nasıl dışarı aktaracağınızı öğrendiniz. Bir kullanıcının OneDrive boyutu verilerini anında kontrol etmek istiyorsanız kullanıcıyı Microsoft 365 yönetim merkezinde arayın. Daha fazla ayrıntı içeren bir rapor almak için Microsoft 365 yönetim merkezindeki rapor bölümünü kullanın veya PowerShell'i kullanın. Dezavantajı ise verilerin kullanılabilir hale gelmesi için 48 saat beklemeniz gerekmesidir.

Bu makaleyi beğendiniz mi? PowerShell betiğiyle Microsoft 365 güvenlik önerilerini de beğenebilirsiniz. Bizi takip etmeyi ve bu makaleyi paylaşmayı unutmayın.

İlgili makaleler