Kaip perkelti OneDrive failus kitam vartotojui per PowerShell

Kaip Perkelti Onedrive Failus Kitam Vartotojui Per Powershell



Failus iš „Microsoft OneDrive“ paskyros perkelti kitam vartotojui paprasta, nes galite atsisiųsti turinį iš savo „OneDrive“, tada rankiniu būdu įkelti juos į kitą paskyrą. Šiame įraše parodysime, kaip tai padaryti perkelti OneDrive failus kitam vartotojui per PowerShell .



  Kaip perkelti OneDrive failus kitam vartotojui per PowerShell





Dalykai, į kuriuos reikia atsižvelgti

Kai reikia įkelti failus iš „OneDrive“ į kitą paskyrą, tai užtruks šiek tiek laiko, nes šiuo metu neįmanoma įkelti didesnių nei 250 MB failų. Geros naujienos yra tai, kad „PowerShell“ užrašys visus failus, kurių negali įkelti, todėl galėsite juos ieškoti ir bendrinti naudodami įprastą metodą.





Prieš įkeldami failus į kitą „OneDrive“ paskyrą, failai pirmiausia bus atsisiunčiami į jūsų kompiuterį, todėl prieš tęsdami įsitikinkite, kad turite pakankamai vietos standžiajame diske arba SSD. O kadangi reikalingas jūsų interneto ryšys, bendras perdavimo greitis priklausys nuo tinklo kokybės.



Dabar turime atkreipti dėmesį, kad dviejų veiksnių autentifikavimas administratoriaus paskyroje neegzistuoja, todėl sukurkite laikiną administratoriaus paskyrą, kurioje nėra 2FA tik šiam tikslui.

Daiktai, kurių jums prireiks

Norėdami perkelti failus iš vienos OneDrive paskyros į kitą, naudosime specialų scenarijų. Taigi, kad scenarijus veiktų su problemomis, dabar įdiekite šiuos „PowerShell“ modulius:

SharePoint PnP PowerShell modulis



Atidarykite „PowerShell“ įrankį kaip administratorių, tada paleiskite šią komandą:

Install-Module SharePointPnPPowerShellOnline -Force

„SharePoint Online“ valdymo apvalkalas

Šio įrankio tikslas yra pakeisti vartotojų „OneDrive“ paskyros teises.

hulu klaidos kodas 400

Atsisiųskite ir įdiekite nemokamai iš microsoft.com .

MSOnline V1 Powershell modulis

Norėdami įdiegti šį paskutinį modulį, paleiskite šią komandą PowerShell kaip administratorius:

Install-Module MSOnline -Force

Kaip perkelti OneDrive failus į kitą paskyrą

Norėdami perkelti failus iš „OneDrive“ paskyros į kitą, turite atidaryti „PowerShell“ ir paleisti pateiktą scenarijų.

Atidarykite „PowerShell“.

  „Microsoft PowerShell“ paieška

Atidarykite „Visual Studio Code“ arba „PowerShell“.

Tai galite padaryti spustelėję mygtuką Ieškoti, tada ieškokite PowerShell.

Iš ten dešiniuoju pelės mygtuku spustelėkite programą, tada pasirinkite parinktį, skirtą įrankiui atidaryti administratoriaus režimu.

Paleiskite scenarijų

  OneDrive PowerShell scenarijus

Tada turite paleisti atitinkamą scenarijų. Jį rasite straipsnio apačioje.

Pasirinkome tai padaryti, nes scenarijus gana ilgas.

Pridėję scenarijų, paspauskite klaviatūros klavišą Enter.

Perkelkite failus

Galiausiai atėjo laikas perkelti failus į kitą „OneDrive“ paskyrą.

Matote, iš karto paspaudus Enter klavišą, jūsų bus paprašyta pridėti el Išeinančio vartotojo vartotojo vardas .

Jums taip pat reikės Paskirties naudotojo vartotojo vardas . Tai yra „OneDrive“ vartotojas, į kurį bus nukopijuoti ir perkelti failai.

Galiausiai jūsų bus paprašyta pridėti Jūsų Office 365 administratoriaus vartotojo vardas .

Palaukite, kol scenarijus atliks savo darbą, prieš patikrindami gavėjo paskyrą, kad pamatytumėte, ar failai buvo perkelti teisingai.

Nukopijuokite ir įklijuokite toliau pateiktą scenarijų:

$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

Scenarijų galite rasti čia Reddit puslapis .

rodyti išjungtus įrenginius

SKAITYTI : Kaip eksportuoti CSV „PowerShell“ sistemoje „Windows“.

Ar „PowerShell“ gali pasiekti „OneDrive“?

„SharePoint Online PowerShell“ suteiks galimybę vartotojams prisijungti prie kitos „OneDrive“ paskyros naudojant „PowerShell“ įrankį. Ji paprašys jūsų įvesti slaptažodį, kad „PowerShell“ pradėtų dirbti su „OneDrive“ paskyromis naudojant cmdlet.

Ar „OneDrive“ gali pasiekti išoriniai vartotojai?

Išoriniai vartotojai gali pasiekti jūsų OneDrive paskyrą, bet tik tuo atveju, jei tai leidžiate. Vartotojai gali turėti prieigą prie jūsų failų visam laikui arba tam tikrą laikotarpį. Taip pat galite apriboti tai, ką jie gali padaryti.

Kaip kopijuoti failus iš kito asmens OneDrive?

Jei norite kopijuoti failus iš kito asmens „OneDrive“, turite šias parinktis:

  • Atidarykite „OneDrive“ naršyklėje naudodami nuorodą, pasirinkite norimus kopijuoti failus ir spustelėkite Atsisiųsti. Tai atsisiųs jį į jūsų kompiuterį.
  • Atidarykite OneDrive paskyrą naudodami nuorodą, pasirinkite norimus kopijuoti failus ir spustelėkite Kopijuoti į.

Viskas!

  Kaip perkelti OneDrive failus kitam vartotojui per PowerShell
Populiarios Temos