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. Cependant, 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 àCentre d'administration Microsoft 365
  2. Cliquez surUtilisateurs > Utilisateurs actifs
  3. Trouver leutilisateuret sélectionnez-le
  1. Sélectionnez surOneDrive
  2. Cliquez surCréer un lien vers des fichiers

Note:Si vous voyez le message indiquant que OneDrive n'est pas configuré pour cet utilisateur, demandez à l'utilisateur de se connecter à OneDrive ouPré-provisionner OneDrive pour les utilisateurs dans Microsoft 365. Si vous ne le faites pas, il n’y a pas de OneDrive pour l’utilisateur et vous ne pouvez pas continuer.

Note:Une fois que vous avez cliqué sur Créer un lien vers des fichiers, des autorisations seront automatiquement attribuées en ajoutant le compte administrateur avec lequel vous êtes actuellement connecté au site utilisateur OneDrive Entreprise. Lire la suite dans l'articleAjouter des administrateurs de collection de sites à OneDrive dans Microsoft 365.

  1. Cliquez sur le lien qui apparaît pour accéder au fichier OneDrive des utilisateurs
  1. Sélectionnez tous les fichiers
  2. Cliquez surTé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

Important:Mettez toujours à jour vers la dernière version du module Microsoft Graph PowerShell 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

Allez auC:Tempdossier et créez un fichier CSV avec le nomOneDriveUsers.csv.

Remplissez l'en-têteNomPrincipalUtilisateuret ajoutez lenoms d'utilisateurs principauxà partir duquel 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 dansC:Scriptsdossier.

Lecture suggérée :Comment sauvegarder vos fichiers avec OneDrive sous Windows 10

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 nomGet-OneDriveFiles.ps1et placez-le dans leC:Scriptsdossier.

<#
    .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 leGet-OneDriveFiles.ps1Script PowerShell.

Note:Vous devez demander à l'utilisateur de se connecter à OneDrive ouPré-provisionner OneDrive pour les utilisateurs dans Microsoft 365. Si vous ne le faites pas, il n’y a pas de OneDrive pour l’utilisateur et vous ne pouvez pas continuer.

Note: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. Lire la suite dans l'articleAjouter des administrateurs de collection de sites à OneDrive dans Microsoft 365.

Dans cet exemple, nous souhaitons importer le chemin CSV duC:tempOneDriveUsers.csvet exportez les fichiers OneDrive de chaque utilisateur vers leC:tempOneDriveDatadossier.

C:scripts.Get-OneDriveFiles.ps1 -CsvPath "C:tempOneDriveUsers.csv" -ExportPath "C:tempOneDriveData"

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

C'est ça!

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.

Related Posts