Weboldal keresés

Az összes felhasználói OneDrive-fájl letöltése


A feladat a felhasználó OneDrive-fájljainak helyi másolatának mentése. A OneDrive fájlokat a Microsoft 365 felügyeleti központ vagy a PowerShell segítségével menthetjük. Ha azonban sok felhasználója van, a PowerShell gyorsabb. Ebből a cikkből megtudhatja, hogyan töltheti le az összes OneDrive-fájlt egy felhasználótól a PowerShell használatával.

Töltse le a felhasználói OneDrive-fájlokat a Microsoft 365 felügyeleti központjában

A felhasználói OneDrive-fájlok Microsoft 365 felügyeleti központ segítségével történő letöltéséhez kövesse az alábbi lépéseket:

  1. Jelentkezzen be a Microsoft 365 felügyeleti központjába
  2. Kattintson a Felhasználók > Aktív felhasználók lehetőségre
  3. Keresse meg a felhasználót, és válassza ki

  1. Válassza a OneDrive lehetőséget
  2. Kattintson a Fájlokra mutató hivatkozás létrehozása lehetőségre

  1. Kattintson a megjelenő hivatkozásra a felhasználók OneDrive-fájljának megnyitásához

  1. Válassza ki az összes fájlt
  2. Kattintson a Letöltés gombra

  1. A fájlok .zip fájlba tömörülnek, és letöltődnek a helyi rendszerre.

Töltse le a felhasználói OneDrive-fájlokat PowerShell-szkripttel

A felhasználói OneDrive-fájlok PowerShell-szkript segítségével történő letöltéséhez kövesse az alábbi lépéseket:

1. lépés: Telepítse a Microsoft Graph PowerShellt

Futtassa a Windows PowerShellt rendszergazdaként, és telepítse a Microsoft Graph PowerShellt.

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

Fontos: Mindig telepítse a Microsoft Graph PowerShell és a Microsoft Graph Beta PowerShell modulokat. Ennek az az oka, hogy néhány parancsmag még nem érhető el a végleges verzióban, és nem fog működni. Frissítse mindkét modult a legújabb verzióra, mielőtt parancsmagot vagy parancsfájlt futtatna, hogy elkerülje a hibákat és a helytelen eredményeket.

2. lépés: Készítsen CSV-fájlt

Lépjen a C:\Temp mappába, és hozzon létre egy CSV-fájlt OneDriveUsers.csv néven.

Töltse ki a UserPrincipalName fejlécet, és adja hozzá azokat a törzsfelhasználói neveket, amelyekről le szeretné tölteni a OneDrive-fájlokat.

3. lépés: Töltse le a Get-OneDriveFiles PowerShell-szkriptet

Töltse le a Get-OneDriveFiles.ps1 PowerShell-szkriptet, és helyezze el a C:\Scripts mappába.

Győződjön meg arról, hogy a fájl blokkolása fel van oldva, hogy elkerülje a hibákat a szkript futtatásakor. További információ a cikkben: Nem digitálisan aláírt hiba a PowerShell-szkript futtatásakor.

Egy másik lehetőség az alábbi kód másolása és beillesztése a Jegyzettömbbe. Adja meg a Get-OneDriveFiles.ps1 nevet, és helyezze a C:\Scripts mappába.

<#
    .SYNOPSIS
    Get-OneDriveFiles.ps1

    .DESCRIPTION
    The script imports users from a specified CSV file and downloads all
    OneDrive files for each user to a specified local folder.

    .LINK
    www.alitajran.com/download-all-user-onedrive-files/

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

    .CHANGELOG
    V1.00, 11/22/2024 - Initial version
#>

# Parameters for CSV file input and export directory
param (
    [Parameter(Mandatory = $true)]
    [string]$CsvPath,
    [Parameter(Mandatory = $true)]
    [string]$ExportPath
)

# Connect to Microsoft Graph with necessary permissions
Connect-MgGraph -Scopes "Directory.Read.All", "Sites.Read.All", "Files.Read.All" -NoWelcome

# Import users from CSV file
$users = Import-Csv -Path $CsvPath

# Local folder path for OneDrive files export
$Folder = $ExportPath

function Get-DriveItems {
    param (
        [string]$DriveId,
        [string]$DriveItemId,
        [string]$LocalPath
    )

    # Ensure the local path exists
    New-Item -ItemType Directory -Path $LocalPath -Force | Out-Null

    # Fetch children of the current drive item
    $driveItemChildren = Get-MgDriveItemChild -DriveId $DriveId -DriveItemId $DriveItemId

    foreach ($item in $driveItemChildren) {
        if ($item.File.MimeType) {
            # It's a file
            $fileName = $item.Name
            $filePath = Join-Path -Path $LocalPath -ChildPath $fileName
            # Download the file
            Get-MgDriveItemContent -DriveId $DriveId -DriveItemId $item.id -OutFile $filePath
            Write-Host "Downloaded file: $filePath" -ForegroundColor Green
        }
        elseif ($item.Folder) {
            # It's a folder
            $newLocalPath = Join-Path -Path $LocalPath -ChildPath $item.Name
            Write-Host "Entering folder: $newLocalPath" -ForegroundColor Cyan
            Get-DriveItems -DriveId $DriveId -DriveItemId $item.id -LocalPath $newLocalPath
        }
    }
}

foreach ($user in $users) {
    $userPrincipalName = $user.UserPrincipalName

    # Fetch user information
    $userObject = Get-MgUser -Filter "userPrincipalName eq '$userPrincipalName'"
    if (-not $userObject) {
        Write-Host "User not found: $($userPrincipalName)" -ForegroundColor Yellow
        continue
    }

    # Fetch user's OneDrive drives
    $userOneDrive = Get-MgUserDefaultDrive -UserId $userObject.id -ErrorAction SilentlyContinue
    if ($userOneDrive) {
        $driveId = $userOneDrive.id

        # Create a directory for the user's data
        $userDirectory = "$Folder\$userPrincipalName"
        New-Item -ItemType Directory -Path $userDirectory -Force | Out-Null

        # Start downloading from the root
        Get-DriveItems -DriveId $driveId -DriveItemId "root" -LocalPath $userDirectory
    }
    else {
        Write-Host "Error accessing OneDrive for user: $($userPrincipalName). Skipping." -ForegroundColor Red
    }
}

# Final message to indicate completion
Write-Host "All operations completed successfully. Files exported to $ExportPath." -ForegroundColor Cyan

4. lépés: Futtassa a Get-OneDriveFiles PowerShell parancsfájlt

Futtassa az alábbi parancsot a Get-OneDriveFiles.ps1 PowerShell-szkript futtatásához.

Megjegyzés: Győződjön meg arról, hogy a rendszergazdai fiókjával hozzáférhet a OneDrive felhasználóhoz. Ellenkező esetben a szkript nem tudja letölteni a fájlokat, és hitelesítési hibát kap.

Ebben a példában importálni szeretnénk a CSV-útvonalat a C:\temp\OneDriveUsers.csv fájlból, és az egyes felhasználók OneDrive-fájljait a C:\temp\OneDriveData mappába szeretnénk exportálni. > mappát.

C:\scripts\.\Get-OneDriveFiles.ps1 -CsvPath "C:\temp\OneDriveUsers.csv" -ExportPath "C:\temp\OneDriveData"

Így néz ki a Get-OneDriveFiles.ps1 PowerShell-szkript befejezése után.

Ennyi!

További információ: OneDrive használati jelentés exportálása a Microsoft 365-ben »

Következtetés

Megtanulta az összes felhasználói OneDrive-fájl letöltését. A Microsoft 365 felügyeleti központ használata kiváló, ha egyetlen vagy néhány felhasználó számára szeretne letölteni. Ha azonban sok felhasználó van, a legjobb, ha automatizálja a munkáját, és használja a Get-OneDriveFiles.ps1 PowerShell-szkriptet.

Tetszett ez a cikk? A postafiók kemény törlése a Microsoft 365 felhasználói fiók törlése nélkül is tetszhet. Ne felejtsen el követni minket, és megosztani ezt a cikket.