Le transfert de fichiers de votre compte Microsoft OneDrive vers un autre utilisateur est simple dans le sens où vous pouvez télécharger le contenu depuis votre OneDrive, puis les télécharger manuellement sur l'autre compte. Dans cet article, nous allons vous montrer commenttransférer des fichiers OneDrive à un autre utilisateur via PowerShell.

Choses à considérer
Lorsqu'il s'agit de télécharger des fichiers de votre OneDrive vers un autre compte, c'est une tâche qui prendra un certain temps car il n'est pas possible pour le moment de télécharger des fichiers de plus de 250 Mo. La bonne nouvelle est que PowerShell prendra note de tous les fichiers qu'il ne peut pas télécharger, afin que vous puissiez les rechercher et les partager via la méthode habituelle.
Avant de télécharger les fichiers sur l'autre compte OneDrive, les fichiers seront d'abord téléchargés sur votre ordinateur, alors assurez-vous de disposer de suffisamment d'espace sur votre disque dur ou SSD avant de continuer. Et comme votre connexion Internet est requise, la vitesse globale du transfert dépendra de la qualité du réseau.
Maintenant, il faut noter que l'authentification à deux facteurs n'existe pas sur le compte administrateur, créez donc un compte administrateur temporaire qui n'a pas 2FA à cet effet uniquement.
Choses dont vous aurez besoin
Nous utiliserons un script spécial pour déplacer les fichiers d'un compte OneDrive à un autre. Ainsi, pour que le script fonctionne en cas de problèmes, veuillez installer les modules PowerShell suivants dès maintenant :
Module PowerShell SharePoint PnP
Ouvrez l'outil PowerShell en tant qu'administrateur, puis exécutez la commande suivante :
Install-Module SharePointPnPPowerShellOnline -Force
Shell de gestion en ligne SharePoint
Le but de cet outil est de modifier les autorisations sur le compte OneDrive des utilisateurs.
Téléchargez-le et installez-le gratuitement depuismicrosoft.com.
Module PowerShell MSOnline V1
Afin d'installer ce module final, veuillez exécuter la commande suivante dans PowerShell en tant qu'administrateur :
Install-Module MSOnline -Force
Pour transférer des fichiers de votre compte OneDrive vers un autre, vous devez ouvrir PowerShell puis exécuter le script fourni.
Ouvrir PowerShell

Ouvrez Visual Studio Code ou PowerShell.
Vous pouvez le faire en cliquant sur le bouton Rechercher, puis recherchez PowerShell.
À partir de là, faites un clic droit sur l'application, puis sélectionnez l'option conçue pour ouvrir l'outil en mode Administrateur.
Exécutez le script

Ensuite, vous devez exécuter le script approprié. Vous pouvez le trouver en bas de l'article.
Nous avons choisi de faire cela car le scénario est assez long.
Après avoir ajouté le script, appuyez sur la touche Entrée de votre clavier.
Transférer les fichiers
Enfin, il est maintenant temps de transférer les fichiers vers un autre compte OneDrive.
Vous voyez, juste après avoir appuyé sur la touche Entrée, il vous sera demandé d'ajouter le compte de messagerieLe nom d'utilisateur de l'utilisateur sortant.
Vous aurez également besoinLe nom d'utilisateur de l'utilisateur de destination. Il s'agit de l'utilisateur OneDrive vers lequel les fichiers seront copiés et transférés.
Enfin, il vous sera demandé d'ajouterLe nom d'utilisateur de votre administrateur Office 365.
Attendez que le script fasse son travail avant de vérifier le compte destinataire pour voir si les fichiers ont été transférés correctement.
Copiez et collez le script ci-dessous :
$departinguser = Read-Host "Enter departing user's email"
$destinationuser = Read-Host "Enter destination user's email"
$globaladmin = Read-Host "Enter the username of your Global Admin account"
$credentials = Get-Credential -Credential $globaladmin
Connect-MsolService -Credential $credentials
$InitialDomain = Get-MsolDomain | Where-Object {$_.IsInitial -eq $true}
$SharePointAdminURL = "https://$($InitialDomain.Name.Split(".")[0])-admin.sharepoint.com"
$departingUserUnderscore = $departinguser -replace "[^a-zA-Z]", "_"
$destinationUserUnderscore = $destinationuser -replace "[^a-zA-Z]", "_"
$departingOneDriveSite = "https://$($InitialDomain.Name.Split(".")[0])-my.sharepoint.com/personal/$departingUserUnderscore"
$destinationOneDriveSite = "https://$($InitialDomain.Name.Split(".")[0])-my.sharepoint.com/personal/$destinationUserUnderscore"
Write-Host "`nConnecting to SharePoint Online" -ForegroundColor Blue
Connect-SPOService -Url $SharePointAdminURL -Credential $credentials
Write-Host "`nAdding $globaladmin as site collection admin on both OneDrive site collections" -ForegroundColor Blue
# Set current admin as a Site Collection Admin on both OneDrive Site Collections
Set-SPOUser -Site $departingOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $true
Set-SPOUser -Site $destinationOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $true
Write-Host "`nConnecting to $departinguser's OneDrive via SharePoint Online PNP module" -ForegroundColor Blue
Connect-PnPOnline -Url $departingOneDriveSite -Credentials $credentials
Write-Host "`nGetting display name of $departinguser" -ForegroundColor Blue
# Get name of departing user to create folder name.
$departingOwner = Get-PnPSiteCollectionAdmin | Where-Object {$_.loginname -match $departinguser}
# If there's an issue retrieving the departing user's display name, set this one.
if ($departingOwner -contains $null) {
$departingOwner = @{
Title = "Departing User"
}
}
# Define relative folder locations for OneDrive source and destination
$departingOneDrivePath = "/personal/$departingUserUnderscore/Documents"
$destinationOneDrivePath = "/personal/$destinationUserUnderscore/Documents/$($departingOwner.Title)'s Files"
$destinationOneDriveSiteRelativePath = "Documents/$($departingOwner.Title)'s Files"
Write-Host "`nGetting all items from $($departingOwner.Title)" -ForegroundColor Blue
# Get all items from source OneDrive
$items = Get-PnPListItem -List Documents -PageSize 1000
$largeItems = $items | Where-Object {[long]$_.fieldvalues.SMTotalFileStreamSize -ge 261095424 -and $_.FileSystemObjectType -contains "File"}
if ($largeItems) {
$largeexport = @()
foreach ($item in $largeitems) {
$largeexport += "$(Get-Date) - Size: $([math]::Round(($item.FieldValues.SMTotalFileStreamSize / 1MB),2)) MB Path: $($item.FieldValues.FileRef)"
Write-Host "File too large to copy: $($item.FieldValues.FileRef)" -ForegroundColor DarkYellow
}
$largeexport | Out-file C:\temp\largefiles.txt -Append
Write-Host "A list of files too large to be copied from $($departingOwner.Title) have been exported to C:\temp\LargeFiles.txt" -ForegroundColor Yellow
}
$rightSizeItems = $items | Where-Object {[long]$_.fieldvalues.SMTotalFileStreamSize -lt 261095424 -or $_.FileSystemObjectType -contains "Folder"}
Write-Host "`nConnecting to $destinationuser via SharePoint PNP PowerShell module" -ForegroundColor Blue
Connect-PnPOnline -Url $destinationOneDriveSite -Credentials $credentials
Write-Host "`nFilter by folders" -ForegroundColor Blue
# Filter by Folders to create directory structure
$folders = $rightSizeItems | Where-Object {$_.FileSystemObjectType -contains "Folder"}
Write-Host "`nCreating Directory Structure" -ForegroundColor Blue
foreach ($folder in $folders) {
$path = ('{0}{1}' -f $destinationOneDriveSiteRelativePath, $folder.fieldvalues.FileRef).Replace($departingOneDrivePath, '')
Write-Host "Creating folder in $path" -ForegroundColor Green
$newfolder = Ensure-PnPFolder -SiteRelativePath $path
}
Write-Host "`nCopying Files" -ForegroundColor Blue
$files = $rightSizeItems | Where-Object {$_.FileSystemObjectType -contains "File"}
$fileerrors = ""
foreach ($file in $files) {
$destpath = ("$destinationOneDrivePath$($file.fieldvalues.FileDirRef)").Replace($departingOneDrivePath, "")
Write-Host "Copying $($file.fieldvalues.FileLeafRef) to $destpath" -ForegroundColor Green
$newfile = Copy-PnPFile -SourceUrl $file.fieldvalues.FileRef -TargetUrl $destpath -OverwriteIfAlreadyExists -Force -ErrorVariable errors -ErrorAction SilentlyContinue
$fileerrors += $errors
}
$fileerrors | Out-File c:\temp\fileerrors.txt
# Remove Global Admin from Site Collection Admin role for both users
Write-Host "`nRemoving $globaladmin from OneDrive site collections" -ForegroundColor Blue
Set-SPOUser -Site $departingOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $false
Set-SPOUser -Site $destinationOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $false
Write-Host "`nComplete!" -ForegroundColor GreenVous pouvez trouver le script iciPage Reddit.
LIRE:
PowerShell peut-il accéder à OneDrive ?
SharePoint Online PowerShell permettra aux utilisateurs de se connecter à un autre compte OneDrive à l'aide de l'outil PowerShell. Il vous demandera d'insérer votre mot de passe pour que PowerShell commence à travailler sur vos comptes OneDrive au moyen d'applets de commande.
OneDrive est-il accessible aux utilisateurs externes ?
Votre compte OneDrive est accessible aux utilisateurs externes, mais uniquement si vous l'autorisez. Les utilisateurs peuvent avoir accès à vos fichiers pour toujours ou pendant une période définie. Vous pouvez également limiter ce qu’ils peuvent faire.
Comment copier des fichiers depuis le OneDrive d’une autre personne ?
Vous disposez des options suivantes si vous souhaitez copier des fichiers depuis le OneDrive d'une autre personne :
- Ouvrez OneDrive dans votre navigateur en utilisant le lien, sélectionnez les fichiers que vous souhaitez copier et cliquez sur Télécharger. Cela le téléchargera sur votre ordinateur.
- Ouvrez le compte OneDrive à l'aide du lien, sélectionnez les fichiers que vous souhaitez copier et cliquez sur Copier vers.
C'est ça!












