Recherche de site Web

Comment télécharger tous les fichiers OneDrive utilisateur


La tâche consiste à enregistrer une copie locale des fichiers OneDrive de l'utilisateur. Nous pouvons enregistrer les fichiers OneDrive à l'aide du centre d'administration Microsoft 365 ou avec PowerShell. Toutefois, si vous avez de nombreux utilisateurs, PowerShell est plus rapide. Dans cet article, vous apprendrez comment télécharger tous les fichiers OneDrive d'un utilisateur avec PowerShell.

Télécharger les fichiers OneDrive utilisateur dans le centre d'administration Microsoft 365

Pour télécharger les fichiers OneDrive de l'utilisateur à l'aide du centre d'administration Microsoft 365, suivez les étapes ci-dessous :

  1. Connectez-vous au centre d'administration Microsoft 365
  2. Cliquez sur Utilisateurs > Utilisateurs actifs
  3. Recherchez l'utilisateur et sélectionnez-le

  1. Sélectionnez sur OneDrive
  2. Cliquez sur Créer un lien vers des fichiers

  1. Cliquez sur le lien qui apparaît pour accéder au fichier OneDrive des utilisateurs

  1. Sélectionnez tous les fichiers
  2. Cliquez sur Télécharger

  1. Les fichiers seront compressés dans un fichier .zip et téléchargés sur votre système local.

Télécharger les fichiers OneDrive utilisateur avec le script PowerShell

Pour télécharger les fichiers OneDrive de l'utilisateur à l'aide d'un script PowerShell, suivez les étapes ci-dessous :

Étape 1. Installez Microsoft Graph PowerShell

Exécutez Windows PowerShell en tant qu'administrateur et installez Microsoft Graph PowerShell.

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

Important : installez toujours les modules Microsoft Graph PowerShell et Microsoft Graph Beta PowerShell. En effet, certaines applets de commande ne sont pas encore disponibles dans la version finale et ne fonctionneront pas. Mettez à jour les deux modules vers la dernière version avant d'exécuter une applet de commande ou un script pour éviter les erreurs et les résultats incorrects.

Étape 2. Préparez le fichier CSV

Accédez au dossier C:\Temp et créez un fichier CSV portant le nom OneDriveUsers.csv.

Remplissez l'en-tête UserPrincipalName et ajoutez les noms principaux d'utilisateur à partir desquels vous souhaitez télécharger les fichiers OneDrive.

Étape 3. Téléchargez le script PowerShell Get-OneDriveFiles

Téléchargez le script PowerShell Get-OneDriveFiles.ps1 et placez-le dans le dossier C:\Scripts.

Assurez-vous que le fichier est débloqué pour éviter les erreurs lors de l'exécution du script. Pour en savoir plus, consultez l'article Erreur non signée numériquement lors de l'exécution du script PowerShell.

Une autre option consiste à copier et coller le code ci-dessous dans le Bloc-notes. Donnez-lui le nom Get-OneDriveFiles.ps1 et placez-le dans le dossier C:\Scripts.

<#
    .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

Étape 4. Exécutez le script PowerShell Get-OneDriveFiles

Exécutez la commande ci-dessous pour exécuter le script PowerShell Get-OneDriveFiles.ps1.

Remarque : Assurez-vous que vous pouvez accéder à l'utilisateur OneDrive avec votre compte administrateur. Sinon, le script ne pourra pas télécharger les fichiers et vous obtiendrez une erreur d'authentification.

Dans cet exemple, nous souhaitons importer le chemin CSV depuis C:\temp\OneDriveUsers.csv et exporter les fichiers OneDrive de chaque utilisateur vers C:\temp\OneDriveData . dossier.

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

Voici à quoi cela ressemble une fois le script PowerShell Get-OneDriveFiles.ps1 terminé.

C'est ça!

Lire la suite : Exporter le rapport d'utilisation de OneDrive dans Microsoft 365 »

Conclusion

Vous avez appris à télécharger tous les fichiers OneDrive des utilisateurs. L'utilisation du centre d'administration Microsoft 365 est excellente si vous souhaitez télécharger pour un seul utilisateur ou plusieurs utilisateurs. Cependant, s'il y a de nombreux utilisateurs, il est préférable d'automatiser votre travail et d'utiliser le script PowerShell Get-OneDriveFiles.ps1.

Avez-vous apprécié cet article ? Vous aimerez peut-être aussi Supprimer définitivement la boîte aux lettres sans supprimer le compte utilisateur dans Microsoft 365. N'oubliez pas de nous suivre et de partager cet article.