Cara mentransfer file OneDrive ke pengguna lain melalui PowerShell

Cara Mentransfer File Onedrive Ke Pengguna Lain Melalui Powershell



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



  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 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 transfer secara keseluruhan akan bergantung pada kualitas jaringan.



Sekarang, kita harus mencatat bahwa autentikasi dua faktor tidak ada di akun administrator, jadi buat akun admin sementara yang tidak memiliki 2FA hanya untuk tujuan ini.

Hal-hal yang Anda perlukan

Kami akan menggunakan skrip khusus untuk memindahkan file dari satu akun OneDrive ke akun lainnya. Jadi, agar skrip berfungsi dengan masalah, silakan instal Modul PowerShell berikut sekarang:

Modul PowerShell SharePoint PnP



Buka alat PowerShell sebagai admin, lalu jalankan perintah berikut:

merekam audio dari browser
Install-Module SharePointPnPPowerShellOnline -Force

Shell Manajemen Online SharePoint

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

Unduh dan instal secara gratis dari microsoft.com .

Modul Powershell MSOnline V1

Untuk menginstal Modul terakhir ini, jalankan perintah berikut di PowerShell sebagai admin:

Install-Module MSOnline -Force

Cara 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.

Buka PowerShell

  Pencarian Microsoft PowerShell

Outlook 2016 menunda pengiriman

Buka Kode Visual Studio, atau PowerShell.

Anda dapat melakukan ini dengan mengklik tombol Cari, lalu cari PowerShell.

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

Jalankan skrip

  Skrip PowerShell OneDrive

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

kegagalan windows untuk mengkonfigurasi pembaruan

Kami memilih melakukan ini karena skripnya cukup panjang.

Setelah menambahkan skrip, tekan tombol Enter pada keyboard Anda.

Transfer file

Terakhir, sekarang saatnya mentransfer file ke akun OneDrive lain.

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

Anda juga akan membutuhkan Nama pengguna pengguna tujuan . Ini adalah pengguna OneDrive tempat file akan disalin dan ditransfer.

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 = 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 dapat menemukan skrip ini halaman Reddit .

pindahkan permainan uap ke drive lain

MEMBACA : Cara mengekspor CSV di PowerShell di Windows

Bisakah PowerShell mengakses OneDrive?

SharePoint Online PowerShell akan memungkinkan pengguna untuk terhubung ke akun OneDrive lain menggunakan alat PowerShell. Ini akan meminta Anda untuk memasukkan kata sandi agar PowerShell mulai bekerja di 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!

  Cara mentransfer file OneDrive ke pengguna lain melalui PowerShell
Pesan Populer