Как да прехвърляте OneDrive файлове на друг потребител чрез PowerShell

Kak Da Prehv Rlate Onedrive Fajlove Na Drug Potrebitel Crez Powershell



Прехвърлянето на файлове от вашия акаунт в Microsoft OneDrive към друг потребител е лесно в смисъл, че можете да изтеглите съдържанието от вашия OneDrive, след което ръчно да ги качите в другия акаунт. В тази публикация ще ви покажем как да прехвърляне на OneDrive файлове на друг потребител чрез PowerShell .



  Как да прехвърляте OneDrive файлове на друг потребител чрез PowerShell





Неща, които трябва да имате предвид

Когато става въпрос за качване на файлове от вашия OneDrive в друг акаунт, това е задача, която ще отнеме известно време, тъй като в момента не е възможно да качвате файлове, по-големи от 250 MB. Добрата новина е, че PowerShell ще отбележи всички файлове, които не може да качи, така че можете да ги търсите и споделяте по обичайния метод.





Преди да качите файловете в другия акаунт в OneDrive, файловете първо ще бъдат изтеглени на вашия компютър, така че се уверете, че имате достатъчно място на вашия твърд диск или SSD, преди да продължите напред. И тъй като се изисква вашата интернет връзка, общата скорост на трансфер ще зависи от качеството на мрежата.



Сега трябва да отбележим, че двуфакторното удостоверяване не съществува в администраторския акаунт, така че създайте временен администраторски акаунт, който няма 2FA само за тази цел.

Неща, от които ще имате нужда

Ще използваме специален скрипт, за да преместим файловете от един акаунт в OneDrive в друг. Така че, за да може скриптът да работи с проблеми, моля, инсталирайте следните PowerShell модули веднага:

SharePoint PnP PowerShell модул



Отворете инструмента PowerShell като администратор, след което изпълнете следната команда:

Windows актуализиране от безопасен режим -
Install-Module SharePointPnPPowerShellOnline -Force

Shell за управление на SharePoint Online

Целта на този инструмент е да променя разрешенията на потребителския акаунт в OneDrive.

Изтеглете и го инсталирайте безплатно от microsoft.com .

MSOnline V1 Powershell модул

За да инсталирате този последен модул, моля, изпълнете следната команда в PowerShell като администратор:

Install-Module MSOnline -Force

Как да прехвърляте файлове от OneDrive в друг акаунт

За да прехвърлите файлове от вашия акаунт в OneDrive към друг, трябва да отворите PowerShell и след това да изпълните предоставения скрипт.

историята на файловете не се архивира

Отворете PowerShell

  Microsoft PowerShell Търсене

Отворете Visual Studio Code или PowerShell.

Можете да направите това, като щракнете върху бутона Търсене, след което потърсете PowerShell.

Оттам щракнете с десния бутон върху приложението, след което изберете опцията, предназначена да отвори инструмента в режим на администратор.

Стартирайте скрипта

  OneDrive PowerShell скрипт

След това трябва да стартирате съответния скрипт. Можете да го намерите в долната част на статията.

Избрахме да направим това, защото сценарият е доста дълъг.

След като добавите скрипта, натиснете клавиша Enter на клавиатурата.

Прехвърлете файловете

И накрая, сега е време да прехвърлите файловете в друг акаунт в OneDrive.

реконструктор на кеш на миниатюри и икони

Виждате ли, веднага след като натиснете клавиша Enter, ще бъдете помолени да добавите имейл акаунта Потребителското име на напускащия потребител .

Вие също ще трябва Потребителското име на целевия потребител . Това е потребителят на OneDrive, където ще бъдат копирани и прехвърлени файловете.

Накрая ще бъдете помолени да добавите Потребителското име на вашия администратор на Office 365 .

Изчакайте скриптът да свърши работата си, преди да проверите получаващия акаунт, за да видите дали файловете са прехвърлени правилно.

Копирайте и поставете скрипта по-долу:

$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 Green

Можете да намерите сценария тук Страница Reddit .

ПРОЧЕТИ : Как да експортирате CSV в PowerShell на Windows

Може ли PowerShell да има достъп до OneDrive?

SharePoint Online PowerShell ще позволи на потребителите да се свързват с друг акаунт в OneDrive с помощта на инструмента PowerShell. Той ще ви помоли да въведете паролата си, за да може PowerShell да започне да работи с вашите акаунти в OneDrive чрез командлети.

Може ли OneDrive да бъде достъпен от външни потребители?

Вашият акаунт в OneDrive може да бъде достъпен от външни потребители, но само ако го разрешите. Потребителите могат да имат достъп до вашите файлове завинаги или за определен период от време. Можете също така да ограничите какво могат да правят.

как да използвам icloud на windows 10

Как да копирате файлове от OneDrive на друг човек?

Имате следните опции, ако искате да копирате файлове от OneDrive на друго лице:

  • Отворете OneDrive във вашия браузър, като използвате връзката, изберете файловете, които искате да копирате, и щракнете върху Изтегляне. Това ще го изтегли на вашия компютър.
  • Отворете акаунта в OneDrive, като използвате връзката, изберете файловете, които искате да копирате, и щракнете върху Копиране в.

Това е!

  Как да прехвърляте OneDrive файлове на друг потребител чрез PowerShell
Популярни Публикации