Kako prenesti datoteke OneDrive drugemu uporabniku prek PowerShell

Kako Prenesti Datoteke Onedrive Drugemu Uporabniku Prek Powershell



Prenos datotek iz vašega računa Microsoft OneDrive na drugega uporabnika je enostaven v smislu, da lahko prenesete vsebino iz svojega OneDrive in jo nato ročno naložite v drugi račun. V tej objavi vam bomo pokazali, kako prenesite datoteke OneDrive drugemu uporabniku prek PowerShell .



  Kako prenesti datoteke OneDrive drugemu uporabniku prek PowerShell





Stvari, ki jih je treba upoštevati

Ko gre za nalaganje datotek iz vašega OneDrive v drug račun, je to opravilo, ki bo trajalo nekaj časa, ker trenutno ni mogoče naložiti datotek, večjih od 250 MB. Dobra novica je, da bo PowerShell zabeležil vse datoteke, ki jih ne more naložiti, tako da jih lahko poiščete in delite z običajno metodo.





Preden naložite datoteke v drug račun OneDrive, bodo datoteke najprej prenesene v vaš računalnik, zato poskrbite, da imate na trdem disku ali SSD-ju dovolj prostora, preden nadaljujete. In ker je potrebna vaša internetna povezava, bo skupna hitrost prenosa odvisna od kakovosti omrežja.



Upoštevati moramo, da dvostopenjska avtentikacija ne obstaja v skrbniškem računu, zato ustvarite začasni skrbniški račun, ki nima 2FA samo za ta namen.

Stvari, ki jih boste potrebovali

Za premikanje datotek iz enega računa OneDrive v drugega bomo uporabili poseben skript. Torej, da bo skript deloval s težavami, takoj namestite naslednje module PowerShell:

SharePoint PnP PowerShell modul



Odprite orodje PowerShell kot skrbnik, nato zaženite naslednji ukaz:

žal ne moremo nastaviti vašega računa
Install-Module SharePointPnPPowerShellOnline -Force

SharePoint Online Management Shell

Namen tega orodja je spreminjanje dovoljenj v uporabnikovem računu OneDrive.

zakaj je moja opravilna vrstica tako velika

Brezplačno ga prenesite in namestite iz microsoft.com .

MSOnline V1 Powershell modul

Če želite namestiti ta končni modul, zaženite naslednji ukaz v lupini PowerShell kot skrbnik:

Install-Module MSOnline -Force

Kako prenesti datoteke OneDrive v drug račun

Če želite prenesti datoteke iz svojega računa OneDrive v drugega, morate odpreti PowerShell in nato zagnati priloženi skript.

Odprite PowerShell

  Iskanje Microsoft PowerShell

Odprite Visual Studio Code ali PowerShell.

To lahko storite tako, da kliknete gumb Iskanje in nato poiščete PowerShell.

Od tam z desno miškino tipko kliknite aplikacijo in izberite možnost, namenjeno odpiranju orodja v skrbniškem načinu.

Zaženite skript

  Skript OneDrive PowerShell

Nato morate zagnati ustrezen skript. Najdete ga na dnu članka.

kako nastaviti spletno kamero na xbox one -

Za to smo se odločili, ker je scenarij precej dolg.

Ko dodate skript, pritisnite tipko Enter na tipkovnici.

Prenesite datoteke

Končno je zdaj čas za prenos datotek v drug račun OneDrive.

Vidite, takoj po pritisku tipke Enter boste morali dodati e-poštni račun Uporabniško ime odhajajočega uporabnika .

Potrebovali boste tudi Uporabniško ime ciljnega uporabnika . To je uporabnik OneDrive, kamor bodo datoteke kopirane in prenesene.

Nazadnje boste morali dodati Uporabniško ime vašega skrbnika za Office 365 .

Počakajte, da skript opravi svoje, preden preverite prejemni račun in preverite, ali so bile datoteke pravilno prenesene.

Kopirajte in prilepite spodnji skript:

$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

Tukaj lahko najdete scenarij Stran Reddit .

PREBERI : Kako izvoziti CSV v PowerShell v sistemu Windows

yumi multiboot usb ustvarjalec

Ali lahko PowerShell dostopa do OneDrive?

SharePoint Online PowerShell bo uporabnikom omogočil povezavo z drugim računom OneDrive z orodjem PowerShell. Prosil vas bo, da vnesete svoje geslo, da bo PowerShell začel delovati na vaših računih OneDrive s pomočjo cmdletov.

Ali lahko do storitve OneDrive dostopajo zunanji uporabniki?

Do vašega računa OneDrive lahko dostopajo zunanji uporabniki, vendar le, če to dovolite. Uporabniki imajo lahko dostop do vaših datotek za vedno ali za določeno časovno obdobje. Lahko tudi omejite, kaj lahko storijo.

Kako kopirati datoteke iz OneDrive druge osebe?

Če želite kopirati datoteke iz OneDrive druge osebe, imate na voljo naslednje možnosti:

  • Odprite OneDrive v brskalniku s povezavo, izberite datoteke, ki jih želite kopirati, in kliknite Prenesi. S tem ga boste prenesli v svoj računalnik.
  • Odprite račun OneDrive s povezavo, izberite datoteke, ki jih želite kopirati, in kliknite Kopiraj v.

To je to!

  Kako prenesti datoteke OneDrive drugemu uporabniku prek PowerShell
Priljubljene Objave