Cara mentransfer file OneDrive ke pengguna lain melalui PowerShell

Mentransfer file dari akun Microsoft OneDrive Anda ke pengguna lain itu mudah dalam artian Anda dapat mengunduh konten dari OneDrive Anda, lalu mengunggahnya secara manual ke akun lain. Dalam posting ini, kami akan menunjukkan cara mentransfer file OneDrive ke pengguna lain melalui PowerShell.

//

Hal-hal yang perlu dipertimbangkan
Ketika harus mengunggah file dari OneDrive Anda ke akun lain, itu adalah tugas yang akan memakan waktu lama karena saat ini tidak mungkin mengunggah file yang lebih besar dari 250MB. Kabar baiknya adalah PowerShell akan mencatat semua file yang tidak dapat diunggah, sehingga Anda dapat mencarinya dan membagikannya melalui metode biasa. Sebelum mengunggah file ke akun OneDrive lain, file tersebut akan diunduh terlebih dahulu ke komputer Anda, jadi pastikan Anda memiliki cukup ruang di hard drive atau SSD sebelum melanjutkan. Dan karena koneksi internet Anda diperlukan, kecepatan keseluruhan transfer akan bergantung pada kualitas jaringan.

Sekarang, kami harus mencatat bahwa otentikasi dua faktor tidak ada di akun administrator, jadi buat akun admin sementara yang tidak miliki 2FA untuk tujuan ini saja.
Hal-hal yang Anda perlukan
Kami akan menggunakan skrip khusus untuk memindahkan file dari satu akun OneDrive ke akun lainnya. Jadi, agar skrip bekerja dengan masalah, silakan instal Modul PowerShell berikut sekarang juga:

SharePoint PnP PowerShell Module

Buka alat PowerShell sebagai admin, lalu jalankan perintah berikut:
Install-Module SharePointPnPPowerShellOnline -Force
SharePoint Online Management Shell

Tujuan dari alat ini adalah untuk mengubah izin pada akun OneDrive pengguna.

Unduh dan instal secara gratis dari microsoft.com.

MSOnline V1 Powershell Module

Untuk menginstal Modul terakhir ini, jalankan perintah berikut di PowerShell sebagai admin:
Install-Module MSOnline -Force
How untuk mentransfer file OneDrive ke akun lain

Untuk mentransfer file dari akun OneDrive Anda ke akun lain, Anda harus membuka PowerShell lalu menjalankan skrip yang disediakan. untuk PowerShell.

Dari sana, klik kanan aplikasi, lalu pilih opsi yang dirancang untuk membuka alat dalam mode Admin.
Jalankan skrip

Selanjutnya, Anda harus menjalankan skrip yang relevan. Anda dapat menemukannya di bagian bawah artikel.

Kami memilih untuk melakukan ini karena skripnya cukup panjang.

Setelah menambahkan skrip, tekan tombol Enter pada keyboard Anda.
Transfer file
Akhirnya, sekarang saatnya mentransfer file ke OneDrive lain account.

Anda lihat, tepat setelah menekan tombol Enter, Anda akan diminta untuk menambahkan akun email Nama pengguna dari pengguna yang akan berangkat.

Anda juga memerlukan Nama pengguna dari pengguna tujuan. Ini adalah pengguna OneDrive tempat file akan disalin dan ditransfer ke.

Akhirnya, Anda akan diminta untuk menambahkan Nama pengguna Admin Office 365 Anda.

Tunggu skrip untuk melakukan tugasnya sebelum memeriksa akun penerima untuk melihat apakah file telah ditransfer dengan benar.

Salin dan tempel skrip di bawah ini:
$departinguser = Baca-Host “Masukkan email pengguna yang akan pergi”

$destinationuser = Baca-Host “Masukkan email pengguna tujuan”

$globaladmin = Baca-Host “Masukkan nama pengguna akun Admin Global Anda”

$credentials = Dapatkan-Credential -Credential $globaladmin

Connect-MsolService -Kredensial $kredensial

$InitialDomain = Dapatkan-MsolDomain | Where-Object {$_.IsInitial -eq $true}

$SharePointAdminURL = “https://$($InitialDomain.Name.Split(“.”)[0])-admin.sharepoint.com”

$departingUserUnderscore = $departinguser -ganti “[^a-zA-Z]”, “_”

$destinationUserUnderscore = $destinationuser -ganti “[^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 -Kredensial $kredensial

Write-Host “`nAdding $globaladmin sebagai admin kumpulan situs di kedua kumpulan situs OneDrive” -ForegroundColor Blue

# Tetapkan admin saat ini sebagai Admin Kumpulan Situs di kedua Kumpulan Situs OneDrive

Set-SPOUser -Situs $departingOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $true

Set-SPOUser -Situs $destinationOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $true

Write-Host “`nConnecting to $departinguser`s OneDrive via SharePoint Online PNP module” -ForegroundColor Blue

Connect-PnPOnline -Url $departingOneDriveSite -Kredensial $kredensial

Write-Host “`nGetting display name of $departinguser” -ForegroundColor Blue

# Dapatkan nama pengguna yang berangkat untuk membuat nama folder.

$departingOwner = Dapatkan-PnPSiteCollectionAdmin | Where-Object {$_.loginname -match $departinguser}

# Jika ada masalah saat mengambil nama tampilan pengguna yang keluar, atur yang ini.

if ($departingOwner -berisi $null) {

$departingOwner = @{

Judul = “Pengguna yang Berangkat”

}

}

# Tentukan lokasi folder relatif untuk sumber dan tujuan OneDrive

$departingOneDrivePath = “/personal/$departingUserUnderscore/Dokumen”

$destinationOneDrivePath = “/personal/$destinationUserUnderscore/Documents/$($departingOwner.Title)`s Files”

$destinationOneDriveSiteRelativePath = “Dokumen/File $($departingOwner.Title)”

Write-Host “`nMendapatkan semua item dari $($departingOwner.Title)” -ForegroundColor Blue

# Dapatkan semua item dari sumber OneDrive

$items = Dapatkan-PnPListItem -Dokumen Daftar -Ukuran Halaman 1000

$barangbesar = $barang | Where-Object {[long]$_.fieldvalues.SMTotalFileStreamSize -ge 261095424 -dan $_.FileSystemObjectType -berisi “File”}

jika ($besarItem) {

$ekspor besar = @()

foreach ($item dalam $largeitems) {

$largeexport += “$(Get-Date) – Ukuran: $([math]::Round(($item.FieldValues.SMTotalFileStreamSize / 1MB),2)) Jalur MB: $($item.FieldValues.FileRef)”

Tulis-Host “File terlalu besar untuk disalin: $($item.FieldValues.FileRef)” -ForegroundColor DarkYellow

}

$ekspor besar | Keluar-file C:templargefiles.txt -Tambahkan

Tulis-Host “Daftar file yang terlalu besar untuk disalin dari $($departingOwner.Title) telah diekspor ke C:tempLargeFiles.txt” -ForegroundColor Yellow

}

$rightSizeItems = $item | Where-Object {[long]$_.fieldvalues.SMTotalFileStreamSize -lt 261095424 -atau $_.FileSystemObjectType -berisi “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

# Saring berdasarkan Folder untuk membuat struktur direktori

$folder = $rightSizeItems | Where-Object {$_.FileSystemObjectType -berisi “Folder”}

Write-Host “`nCreating Directory Structure” -ForegroundColor Blue

foreach ($folder di $folder) {

$path = (`{0}{1}` -f $destinationOneDriveSiteRelativePath, $folder.fieldvalues.FileRef).Replace($departingOneDrivePath, “)

Tulis-Host “Membuat folder di $path” -ForegroundColor Green

$newfolder = Pastikan-PnPFolder -SiteRelativePath $path

}

Write-Host “`nCopying Files” – Latar DepanWarna Biru

$berkas = $rightSizeItems | Where-Object {$_.FileSystemObjectType -berisi “File”}

$fileerror = “”

foreach ($file dalam $files) {

$destpath = (“$destinationOneDrivePath$($file.fieldvalues.FileDirRef)”).Replace($departingOneDrivePath, “”)

Tulis-Host “Menyalin $($file.fieldvalues.FileLeafRef) ke $destpath” -ForegroundColor Green

$newfile = Copy-PnPFile -SourceUrl $file.fieldvalues.FileRef -TargetUrl $destpath -OverwriteIfAlreadyExists -Force -Kesalahan ErrorVariable -ErrorAction SilentlyContinue

$fileerror += $error

}

$fileerror | Keluar-File c:tempfileerrors.txt

# Hapus Admin Global dari peran Admin Kumpulan Situs untuk kedua pengguna

Write-Host “`nRemoving $globaladmin dari kumpulan situs OneDrive” -ForegroundColor Blue

Set-SPOUser -Situs $departingOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $false

Set-SPOUser -Situs $destinationOneDriveSite -LoginName $globaladmin -IsSiteCollectionAdmin $false

Tulis-Host “`nComplete!” -ForegroundColor Green
Anda dapat menemukan skrip di halaman Reddit ini.

BACA: Bagaimana cara mengekspor CSV di PowerShell di Windows

Dapatkah PowerShell mengakses OneDrive?

SharePoint Online PowerShell akan memungkinkan pengguna terhubung ke akun OneDrive lain menggunakan alat PowerShell. Ini akan meminta Anda untuk memasukkan kata sandi agar PowerShell dapat mulai bekerja pada akun OneDrive Anda melalui cmdlet.

Bisakah OneDrive diakses oleh pengguna eksternal?

Akun OneDrive Anda dapat diakses oleh pengguna eksternal, tetapi hanya jika Anda mengizinkannya. Pengguna dapat memiliki akses ke file Anda selamanya atau untuk jangka waktu tertentu. Anda juga dapat membatasi apa yang dapat mereka lakukan.

Bagaimana cara menyalin file dari OneDrive orang lain?

Anda memiliki opsi berikut jika ingin menyalin file dari OneDrive orang lain:
Buka OneDrive di browser Anda menggunakan tautan, pilih file yang ingin Anda salin dan klik Unduh. Ini akan mengunduhnya ke komputer Anda. Buka akun OneDrive menggunakan tautan, pilih file yang ingin Anda salin, dan klik Salin ke.
Itu dia!
Selengkapnya

Scroll to Top