Memindahkan fail daripada akaun Microsoft OneDrive anda kepada pengguna lain adalah mudah dalam erti kata bahawa anda boleh memuat turun kandungan daripada OneDrive anda, kemudian memuat naiknya secara manual ke akaun lain. Dalam siaran ini, kami akan menunjukkan kepada anda bagaimana untuk pindahkan fail OneDrive kepada pengguna lain melalui PowerShell .
Perkara yang perlu dipertimbangkan
Apabila ia berkaitan dengan memuat naik fail daripada OneDrive anda ke akaun lain, ini adalah tugas yang akan mengambil sedikit masa kerana tidak mungkin pada masa ini memuat naik fail yang lebih besar daripada 250MB. Berita baiknya ialah PowerShell akan mencatat semua fail yang tidak boleh dimuat naik, jadi anda boleh mencarinya dan berkongsinya melalui kaedah biasa.
Sebelum memuat naik fail ke akaun OneDrive yang lain, fail tersebut akan dimuat turun terlebih dahulu ke komputer anda, jadi pastikan anda mempunyai ruang yang mencukupi pada pemacu keras atau SSD anda sebelum bergerak ke hadapan. Dan kerana sambungan internet anda diperlukan, kelajuan keseluruhan pemindahan akan bergantung pada kualiti rangkaian.
xbox satu gambar latar
Sekarang, kita mesti ambil perhatian bahawa pengesahan dua faktor tidak wujud pada akaun pentadbir, jadi buat akaun pentadbir sementara yang tidak mempunyai 2FA untuk tujuan ini sahaja.
Perkara yang anda perlukan
Kami akan menggunakan skrip khas untuk memindahkan fail dari satu akaun OneDrive ke akaun yang lain. Jadi, agar skrip berfungsi dengan masalah, sila pasang Modul PowerShell berikut sekarang:
Modul SharePoint PnP PowerShell
Buka alat PowerShell sebagai pentadbir, kemudian jalankan arahan berikut:
Install-Module SharePointPnPPowerShellOnline -Force
Shell Pengurusan Dalam Talian SharePoint
Tujuan alat ini adalah untuk mengubah suai kebenaran pada akaun OneDrive pengguna.
Muat turun dan pasang secara percuma daripada microsoft.com .
Modul MSOnline V1 Powershell
tetingkap but semula jarak jauh 10
Untuk memasang Modul akhir ini, sila jalankan arahan berikut dalam PowerShell sebagai pentadbir:
Install-Module MSOnline -Force
Bagaimana untuk memindahkan fail OneDrive ke akaun lain
Untuk memindahkan fail daripada akaun OneDrive anda ke akaun lain, anda perlu membuka PowerShell dan kemudian menjalankan skrip yang disediakan.
Buka PowerShell
Buka Kod Visual Studio, atau PowerShell.
Anda boleh melakukan ini dengan mengklik pada butang Cari, kemudian cari PowerShell.
Dari sana, klik kanan pada apl, kemudian pilih pilihan yang direka untuk membuka alat dalam mod Pentadbiran.
Jalankan skrip
Seterusnya, anda mesti menjalankan skrip yang berkaitan. Anda boleh menemuinya di bahagian bawah artikel.
Kami memilih untuk melakukan ini kerana skripnya agak panjang.
Selepas menambah skrip, tekan kekunci Enter pada papan kekunci anda.
Pindahkan fail
Akhir sekali, kini tiba masanya untuk memindahkan fail ke akaun OneDrive yang lain.
Anda lihat, sejurus selepas menekan kekunci Enter, anda akan diminta untuk menambah akaun e-mel Nama pengguna pengguna yang akan pergi .
Anda juga akan memerlukan Nama pengguna pengguna destinasi . Ini ialah pengguna OneDrive tempat fail akan disalin dan dipindahkan.
Akhir sekali, anda akan diminta untuk menambah Nama pengguna Office 365 Admin anda .
Tunggu skrip melakukan tugasnya sebelum menyemak akaun penerima untuk melihat sama ada fail telah dipindahkan dengan betul.
Salin dan tampal skrip di bawah:
$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
Anda boleh mencari skrip mengenai ini Halaman reddit .
BACA : Bagaimana untuk mengeksport CSV dalam PowerShell pada Windows
Bolehkah PowerShell mengakses OneDrive?
SharePoint Online PowerShell akan membolehkan pengguna menyambung ke akaun OneDrive lain menggunakan alat PowerShell. Ia akan meminta anda memasukkan kata laluan anda agar PowerShell mula bekerja pada akaun OneDrive anda melalui cmdlet.
menguruskan tambah
Bolehkah OneDrive diakses oleh pengguna luaran?
Akaun OneDrive anda boleh diakses oleh pengguna luaran, tetapi hanya jika anda membenarkannya. Pengguna boleh mempunyai akses kepada fail anda selama-lamanya atau untuk tempoh masa yang ditetapkan. Anda juga boleh mengehadkan apa yang boleh mereka lakukan.
Bagaimana untuk menyalin fail daripada OneDrive orang lain?
Anda mempunyai pilihan berikut jika anda mahu menyalin fail daripada OneDrive orang lain:
- Buka OneDrive dalam penyemak imbas anda menggunakan pautan, pilih fail yang ingin anda salin dan klik Muat turun. Ini akan memuat turunnya ke komputer anda.
- Buka akaun OneDrive menggunakan pautan, pilih fail yang ingin anda salin dan klik Salin ke.
Itu sahaja!