Kuidas OneDrive'i faile PowerShelli kaudu teisele kasutajale edastada

Kuidas Onedrive I Faile Powershelli Kaudu Teisele Kasutajale Edastada



Failide ülekandmine Microsoft OneDrive'i kontolt teisele kasutajale on lihtne selles mõttes, et saate sisu oma OneDrive'ist alla laadida ja seejärel käsitsi teisele kontole üles laadida. Selles postituses näitame teile, kuidas edastada OneDrive'i failid PowerShelli kaudu teisele kasutajale .



  Kuidas OneDrive'i faile PowerShelli kaudu teisele kasutajale edastada





Asjad, mida kaaluda

Failide üleslaadimine OneDrive’ist teisele kontole võtab aega, kuna praegu ei ole võimalik üles laadida faile, mis on suuremad kui 250 MB. Hea uudis on see, et PowerShell märgib üles kõik failid, mida ta ei saa üles laadida, nii et saate neid otsida ja tavalise meetodi abil jagada.





Enne failide teisele OneDrive'i kontole üleslaadimist laaditakse failid esmalt alla teie arvutisse, seega veenduge enne edasiliikumist, et teil oleks kõvakettal või SSD-l piisavalt ruumi. Ja kuna teie Interneti-ühendus on vajalik, sõltub edastuse üldine kiirus võrgu kvaliteedist.



Nüüd peame märkima, et administraatorikontol pole kahefaktorilist autentimist, seega looge ajutine administraatori konto, millel pole 2FA-d ainult selleks otstarbeks.

Asjad, mida vajate

Failide teisaldamiseks ühelt OneDrive'i kontolt teisele kasutame spetsiaalset skripti. Seega, et skript töötaks probleemidega, installige kohe järgmised PowerShelli moodulid:

SharePointi PnP PowerShelli moodul



Avage PowerShelli tööriist administraatorina ja seejärel käivitage järgmine käsk:

Install-Module SharePointPnPPowerShellOnline -Force

SharePoint Online'i halduskest

Selle tööriista eesmärk on muuta kasutajate OneDrive'i konto õigusi.

Laadige alla ja installige see tasuta aadressilt microsoft.com .

MSOnline V1 Powershelli moodul

Selle viimase mooduli installimiseks käivitage administraatorina PowerShellis järgmine käsk:

Install-Module MSOnline -Force

Kuidas OneDrive'i faile teisele kontole üle kanda

Failide teisaldamiseks oma OneDrive'i kontolt teisele peate avama PowerShelli ja seejärel käivitama kaasasoleva skripti.

avatud taust

Avage PowerShell

  Microsoft PowerShelli otsing

Avage Visual Studio Code või PowerShell.

Seda saate teha, klõpsates nuppu Otsi ja seejärel otsides PowerShelli.

me ei saanud ühendust värskendusteenuse Windows 10-ga

Sealt paremklõpsake rakendusel, seejärel valige suvand, mis on loodud tööriista avamiseks administraatorirežiimis.

Käivitage skript

  OneDrive PowerShelli skript

Järgmisena peate käivitama vastava skripti. Leiate selle artikli allosas.

Otsustasime seda teha, kuna stsenaarium on üsna pikk.

Pärast skripti lisamist vajutage klaviatuuril sisestusklahvi.

Edastage failid

Lõpuks on nüüd aeg failid teisele OneDrive'i kontole üle kanda.

Näete, kohe pärast sisestusklahvi vajutamist palutakse teil e-posti konto lisada Lahkuva kasutaja kasutajanimi .

Sul läheb ka vaja Sihtkasutaja kasutajanimi . See on OneDrive'i kasutaja, kuhu failid kopeeritakse ja kuhu kantakse.

Lõpuks palutakse teil lisada Teie Office 365 administraatori kasutajanimi .

Oodake, kuni skript teeb oma ülesande, enne kui kontrollite vastuvõtvat kontot, et näha, kas failid on õigesti üle kantud.

Kopeerige ja kleepige allolev 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

Skripti leiate sellelt Redditi leht .

LOE : Kuidas eksportida CSV-d Windowsi PowerShellisse

Kas PowerShell pääseb juurde OneDrive'ile?

SharePoint Online PowerShell võimaldab kasutajatel PowerShelli tööriista abil ühenduse luua teise OneDrive'i kontoga. See palub teil sisestada parool, et PowerShell hakkaks cmdlet-käskude abil teie OneDrive'i kontodega töötama.

Kas OneDrive’ile pääsevad juurde väliskasutajad?

Teie OneDrive'i kontole pääsevad juurde väliskasutajad, kuid ainult siis, kui te seda lubate. Kasutajatel on juurdepääs teie failidele igavesti või teatud aja jooksul. Samuti saate piirata seda, mida nad saavad teha.

Kuidas kopeerida faile teise inimese OneDrive’ist?

Kui soovite faile teise inimese OneDrive’ist kopeerida, on teil järgmised valikud.

  • Avage oma brauseris OneDrive lingi abil, valige failid, mida soovite kopeerida, ja klõpsake nuppu Laadi alla. See laadib selle teie arvutisse alla.
  • Avage lingi abil OneDrive'i konto, valige failid, mida soovite kopeerida, ja klõpsake nuppu Kopeeri.

See on kõik!

  Kuidas OneDrive'i faile PowerShelli kaudu teisele kasutajale edastada
Lemmik Postitused