Kako prenijeti OneDrive datoteke drugom korisniku putem PowerShella

Kako Prenijeti Onedrive Datoteke Drugom Korisniku Putem Powershella



Prijenos datoteka s vašeg Microsoft OneDrive računa na drugog korisnika jednostavan je u smislu da možete preuzeti sadržaj sa svog OneDrivea, a zatim ih ručno učitati na drugi račun. U ovom postu ćemo vam pokazati kako prijenos OneDrive datoteka drugom korisniku putem PowerShella .



  Kako prenijeti OneDrive datoteke drugom korisniku putem PowerShella





Stvari koje treba razmotriti

Kada se radi o prijenosu datoteka s vašeg OneDrivea na drugi račun, to je zadatak koji će potrajati neko vrijeme jer trenutačno nije moguće učitati datoteke veće od 250 MB. Dobra vijest je da će PowerShell zabilježiti sve datoteke koje ne može prenijeti, tako da ih možete potražiti i podijeliti uobičajenom metodom.





Prije prijenosa datoteka na drugi OneDrive račun, datoteke će prvo biti preuzete na vaše računalo, stoga provjerite imate li dovoljno prostora na tvrdom disku ili SSD-u prije nego što nastavite. Budući da je potrebna vaša internetska veza, ukupna brzina prijenosa ovisit će o kvaliteti mreže.



Moramo napomenuti da dvofaktorska provjera autentičnosti ne postoji na administratorskom računu, pa stvorite privremeni administratorski račun koji nema 2FA samo za ovu svrhu.

Stvari koje ćete trebati

Koristit ćemo posebnu skriptu za premještanje datoteka s jednog OneDrive računa na drugi. Dakle, kako bi skripta radila s problemima, odmah instalirajte sljedeće PowerShell module:

SharePoint PnP PowerShell modul



Otvorite alat PowerShell kao administrator, zatim pokrenite sljedeću naredbu:

Install-Module SharePointPnPPowerShellOnline -Force

SharePoint Online Management Shell

Svrha ovog alata je izmjena dopuštenja na OneDrive računu korisnika.

Preuzmite ga i instalirajte besplatno sa microsoft.com .

MSOnline V1 Powershell modul

Kako biste instalirali ovaj završni modul, pokrenite sljedeću naredbu u PowerShell kao administrator:

Install-Module MSOnline -Force

Kako prenijeti OneDrive datoteke na drugi račun

Za prijenos datoteka sa svog OneDrive računa na drugi, morate otvoriti PowerShell, a zatim pokrenuti priloženu skriptu.

Otvorite PowerShell

  Microsoft PowerShell Search

Windows 10 izbornik Start na radnoj površini

Otvorite Visual Studio Code ili PowerShell.

To možete učiniti klikom na gumb Traži, zatim potražite PowerShell.

Odatle desnom tipkom miša kliknite aplikaciju, a zatim odaberite opciju za otvaranje alata u administratorskom načinu rada.

Pokrenite skriptu

  OneDrive PowerShell skripta

Zatim morate pokrenuti odgovarajuću skriptu. Možete ga pronaći na dnu članka.

Odlučili smo se za ovo jer je scenarij prilično dugačak.

Nakon dodavanja skripte pritisnite tipku Enter na tipkovnici.

Prenesite datoteke

Konačno, sada je vrijeme za prijenos datoteka na drugi OneDrive račun.

Vidite, odmah nakon što pritisnete tipku Enter, od vas će se tražiti da dodate račun e-pošte Korisničko ime korisnika koji odlazi .

Također ćete trebati Korisničko ime odredišnog korisnika . Ovo je OneDrive korisnik na kojeg će se datoteke kopirati i prenijeti.

Na kraju će se od vas tražiti da dodate Korisničko ime vašeg Office 365 administratora .

Pričekajte da skripta odradi svoje prije nego što provjerite račun primatelja da vidite jesu li datoteke ispravno prenesene.

Kopirajte i zalijepite donju skriptu:

$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

Ovdje možete pronaći scenarij Reddit stranica .

ČITATI : Kako izvesti CSV u PowerShell u sustavu Windows

Može li PowerShell pristupiti OneDriveu?

SharePoint Online PowerShell omogućit će korisnicima da se povežu na drugi OneDrive račun pomoću alata PowerShell. Tražit će od vas da unesete lozinku kako bi PowerShell počeo raditi na vašim OneDrive računima pomoću cmdleta.

Mogu li OneDriveu pristupiti vanjski korisnici?

Vašem OneDrive računu mogu pristupiti vanjski korisnici, ali samo ako im vi to dopustite. Korisnici mogu imati pristup vašim datotekama zauvijek ili na određeno vremensko razdoblje. Također možete ograničiti ono što mogu učiniti.

Kako kopirati datoteke s OneDrivea druge osobe?

Imate sljedeće mogućnosti ako želite kopirati datoteke s OneDrivea druge osobe:

  • Otvorite OneDrive u svom pregledniku pomoću veze, odaberite datoteke koje želite kopirati i kliknite Preuzmi. Ovo će ga preuzeti na vaše računalo.
  • Otvorite OneDrive račun pomoću veze, odaberite datoteke koje želite kopirati i kliknite Kopiraj u.

To je to!

  Kako prenijeti OneDrive datoteke drugom korisniku putem PowerShella
Popularni Postovi