Paano maglipat ng mga file ng OneDrive sa ibang user sa pamamagitan ng PowerShell

Paano Maglipat Ng Mga File Ng Onedrive Sa Ibang User Sa Pamamagitan Ng Powershell



Ang paglilipat ng mga file mula sa iyong Microsoft OneDrive account sa isa pang user ay madali sa kahulugan na maaari mong i-download ang nilalaman mula sa iyong OneDrive, pagkatapos ay manu-manong i-upload ang mga ito sa kabilang account. Sa post na ito, ipapakita namin sa iyo kung paano ilipat ang mga OneDrive file sa ibang user sa pamamagitan ng PowerShell .



  Paano maglipat ng mga file ng OneDrive sa ibang user sa pamamagitan ng PowerShell





Mga bagay na dapat isaalang-alang

Pagdating sa pag-upload ng mga file mula sa iyong OneDrive patungo sa isa pang account, ito ay isang gawain na magtatagal dahil hindi posible sa ngayon na mag-upload ng mga file na mas malaki kaysa sa 250MB. Ang magandang balita ay ang PowerShell ay gagawa ng tala ng lahat ng mga file na hindi nito mai-upload, upang maaari mong hanapin ang mga ito at ibahagi ang mga ito sa pamamagitan ng regular na pamamaraan.





Bago i-upload ang mga file sa isa pang OneDrive account, ida-download muna ang mga file sa iyong computer, kaya tiyaking mayroon kang sapat na espasyo sa iyong hard drive o SSD bago sumulong. At dahil kailangan ang iyong koneksyon sa internet, ang kabuuang bilis ng paglipat ay magdedepende sa kalidad ng network.



Ngayon, dapat nating tandaan na ang two-factor authentication ay hindi umiiral sa administrator account, kaya gumawa ng pansamantalang admin account na walang 2FA para sa layuning ito lamang.

Mga bagay na kakailanganin mo

Gagamit kami ng isang espesyal na script upang ilipat ang mga file mula sa isang OneDrive account patungo sa isa pa. Kaya, para gumana ang script sa mga problema, paki-install ang sumusunod na PowerShell Module ngayon:

SharePoint PnP PowerShell Module



Buksan ang tool na PowerShell bilang isang admin, pagkatapos ay patakbuhin ang sumusunod na command:

Install-Module SharePointPnPPowerShellOnline -Force

SharePoint Online Management Shell

Ang layunin ng tool na ito ay baguhin ang mga pahintulot sa OneDrive account ng mga user.

I-download at i-install ito nang libre mula sa microsoft.com .

block pananaw email tracking

MSOnline V1 Powershell Module

Upang mai-install ang panghuling Module na ito, mangyaring patakbuhin ang sumusunod na command sa PowerShell bilang isang admin:

Install-Module MSOnline -Force

Paano maglipat ng mga file ng OneDrive sa ibang account

Upang maglipat ng mga file mula sa iyong OneDrive account patungo sa isa pa, kailangan mong buksan ang PowerShell at pagkatapos ay patakbuhin ang ibinigay na script.

Buksan ang PowerShell

  Microsoft PowerShell Search

Buksan ang Visual Studio Code, o PowerShell.

Magagawa mo ito sa pamamagitan ng pag-click sa button na Paghahanap, pagkatapos ay hanapin ang PowerShell.

Mula doon, mag-right-click sa app, pagkatapos ay piliin ang opsyong idinisenyo upang buksan ang tool sa Admin mode.

Patakbuhin ang script

  OneDrive PowerShell Script

Susunod, dapat mong patakbuhin ang nauugnay na script. Mahahanap mo ito sa ibaba ng artikulo.

Pinili naming gawin ito dahil medyo mahaba ang script.

Pagkatapos idagdag ang script, pindutin ang Enter key sa iyong keyboard.

Ilipat ang mga file

Sa wakas, oras na para ilipat ang mga file sa isa pang OneDrive account.

Kita mo, pagkatapos pindutin ang Enter key, hihilingin sa iyo na idagdag ang email account Ang username ng papaalis na user .

Kakailanganin mo rin Ang username ng patutunguhang user . Ito ang user ng OneDrive kung saan kokopyahin at ililipat ang mga file.

Sa wakas, hihilingin sa iyo na magdagdag Ang username ng iyong Office 365 Admin .

Hintaying gawin ng script ang bagay nito bago suriin ang receiving account upang makita kung nailipat nang tama ang mga file.

Kopyahin at i-paste ang script sa ibaba:

$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

Mahahanap mo ang script dito Pahina ng reddit .

BASAHIN : Paano i-export ang CSV sa PowerShell sa Windows

Maa-access ba ng PowerShell ang OneDrive?

Gagawin ng SharePoint Online PowerShell na posible para sa mga user na kumonekta sa isa pang OneDrive account gamit ang PowerShell tool. Hihilingin nito sa iyo na ipasok ang iyong password upang magsimulang magtrabaho ang PowerShell sa iyong mga OneDrive account sa pamamagitan ng mga cmdlet.

Maaari bang ma-access ang OneDrive ng mga panlabas na user?

Maaaring ma-access ng mga external na user ang iyong OneDrive account, ngunit kung papayagan mo lang ito. Maaaring magkaroon ng access ang mga user sa iyong mga file magpakailanman o para sa isang nakatakdang yugto ng panahon. Maaari mo ring limitahan kung ano ang maaari nilang gawin.

Paano kopyahin ang mga file mula sa OneDrive ng ibang tao?

Mayroon kang mga sumusunod na opsyon kung gusto mong kopyahin ang mga file mula sa OneDrive ng ibang tao:

  • Buksan ang OneDrive sa iyong browser gamit ang link, piliin ang mga file na gusto mong kopyahin at i-click ang I-download. Ida-download ito sa iyong computer.
  • Buksan ang OneDrive account gamit ang link, piliin ang mga file na gusto mong kopyahin, at i-click ang Kopyahin sa.

Ayan yun!

  Paano maglipat ng mga file ng OneDrive sa ibang user sa pamamagitan ng PowerShell
Patok Na Mga Post