Cómo descargar todos los archivos de OneDrive del usuario
La tarea consiste en guardar una copia local de los archivos de OneDrive del usuario. Podemos guardar los archivos de OneDrive usando el centro de administración de Microsoft 365 o con PowerShell. Sin embargo, si tienes muchos usuarios, PowerShell es más rápido. En este artículo, aprenderá cómo descargar todos los archivos de OneDrive de un usuario con PowerShell.
Descargar archivos de usuario de OneDrive en el centro de administración de Microsoft 365
Para descargar los archivos de OneDrive del usuario mediante el centro de administración de Microsoft 365, siga los pasos a continuación:
- Iniciar sesión en el centro de administración de Microsoft 365
- Haga clic en Usuarios > Usuarios activos
- Encuentra el usuario y selecciónalo
- Seleccione en OneDrive
- Haga clic en Crear enlace a archivos
- Haga clic en el enlace que aparece para ir al archivo OneDrive del usuario.
- Seleccionar todos los archivos
- Haga clic en Descargar
- Los archivos se comprimirán en un archivo .zip y se descargarán en su sistema local.
Descargar archivos de usuario de OneDrive con script de PowerShell
Para descargar los archivos de OneDrive del usuario mediante un script de PowerShell, siga los pasos a continuación:
Paso 1. Instale Microsoft Graph PowerShell
Ejecute Windows PowerShell como administrador e instale Microsoft Graph PowerShell.
Install-Module Microsoft.Graph -ForceInstall-Module Microsoft.Graph.Beta -AllowClobber -ForceImportante: Instale siempre los módulos Microsoft Graph PowerShell y Microsoft Graph Beta PowerShell. Esto se debe a que algunos cmdlets aún no están disponibles en la versión final y no funcionarán. Actualice ambos módulos a la última versión antes de ejecutar un cmdlet o script para evitar errores y resultados incorrectos.
Paso 2. Prepare el archivo CSV
Vaya a la carpeta C:\Temp y cree un archivo CSV con el nombre OneDriveUsers.csv.
Complete el encabezado UserPrincipalName y agregue los nombres principales de usuario desde los que desea descargar los archivos de OneDrive.
Paso 3. Descargue el script de PowerShell Get-OneDriveFiles
Descargue el script de PowerShell Get-OneDriveFiles.ps1 y colóquelo en la carpeta C:\Scripts.
Asegúrese de que el archivo esté desbloqueado para evitar errores al ejecutar el script. Lea más en el artículo Error sin firma digital al ejecutar el script de PowerShell.
Otra opción es copiar y pegar el código siguiente en el Bloc de notas. Asígnale el nombre Get-OneDriveFiles.ps1 y colócalo en la carpeta 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 CyanPaso 4. Ejecute el script de PowerShell Get-OneDriveFiles
Ejecute el siguiente comando para ejecutar el script de PowerShell Get-OneDriveFiles.ps1.
Nota: Asegúrese de poder acceder al usuario OneDrive con su cuenta de administrador. De lo contrario, el script no podrá descargar los archivos y obtendrá un error de autenticación.
En este ejemplo, queremos importar la ruta CSV desde C:\temp\OneDriveUsers.csv y exportar los archivos de OneDrive para cada usuario a C:\temp\OneDriveData carpeta.
C:\scripts\.\Get-OneDriveFiles.ps1 -CsvPath "C:\temp\OneDriveUsers.csv" -ExportPath "C:\temp\OneDriveData"Así es como se ve una vez finalizado el script de PowerShell Get-OneDriveFiles.ps1.
¡Eso es todo!
Leer más: Exportar informe de uso de OneDrive en Microsoft 365 »
Conclusión
Aprendiste cómo descargar todos los archivos de OneDrive del usuario. Usar el centro de administración de Microsoft 365 es excelente si desea realizar descargas para un solo usuario o para un par de usuarios. Sin embargo, si hay muchos usuarios, es mejor automatizar su trabajo y utilizar el script de PowerShell Get-OneDriveFiles.ps1.
¿Disfrutaste este artículo? También te puede gustar Eliminar definitivamente el buzón sin eliminar la cuenta de usuario en Microsoft 365. No olvides seguirnos y compartir este artículo.







