Πώς να μεταφέρετε αρχεία OneDrive σε άλλο χρήστη μέσω του PowerShell

Pos Na Metapherete Archeia Onedrive Se Allo Chreste Meso Tou Powershell



Η μεταφορά αρχείων από το λογαριασμό σας στο Microsoft OneDrive σε άλλον χρήστη είναι εύκολη με την έννοια ότι μπορείτε να κάνετε λήψη του περιεχομένου από το OneDrive και, στη συνέχεια, να τα ανεβάσετε με μη αυτόματο τρόπο στον άλλο λογαριασμό. Σε αυτή την ανάρτηση, θα σας δείξουμε πώς να μεταφέρετε αρχεία OneDrive σε άλλο χρήστη μέσω του PowerShell .



  Πώς να μεταφέρετε αρχεία OneDrive σε άλλο χρήστη μέσω του PowerShell





Πράγματα που πρέπει να ληφθούν υπόψη

Όταν πρόκειται για τη μεταφόρτωση αρχείων από το OneDrive σας σε άλλο λογαριασμό, είναι μια εργασία που θα διαρκέσει λίγο, επειδή δεν είναι δυνατή αυτή τη στιγμή να ανεβάσετε αρχεία μεγαλύτερα από 250 MB. Τα καλά νέα είναι ότι το PowerShell θα σημειώσει όλα τα αρχεία που δεν μπορεί να ανεβάσει, ώστε να μπορείτε να τα αναζητήσετε και να τα μοιραστείτε με την κανονική μέθοδο.





Πριν ανεβάσετε τα αρχεία στον άλλο λογαριασμό OneDrive, τα αρχεία θα ληφθούν πρώτα στον υπολογιστή σας, επομένως βεβαιωθείτε ότι έχετε αρκετό χώρο στον σκληρό σας δίσκο ή στο SSD πριν προχωρήσετε. Και καθώς απαιτείται η σύνδεσή σας στο Διαδίκτυο, η συνολική ταχύτητα μεταφοράς θα εξαρτηθεί από την ποιότητα του δικτύου.



Τώρα, πρέπει να σημειώσουμε ότι ο έλεγχος ταυτότητας δύο παραγόντων δεν υπάρχει στον λογαριασμό διαχειριστή, επομένως δημιουργήστε έναν προσωρινό λογαριασμό διαχειριστή που δεν έχει 2FA μόνο για αυτόν τον σκοπό.

Πράγματα που θα χρειαστείτε

Θα χρησιμοποιήσουμε ένα ειδικό σενάριο για να μετακινήσουμε τα αρχεία από έναν λογαριασμό OneDrive σε έναν άλλο. Έτσι, για να λειτουργεί το σενάριο με προβλήματα, εγκαταστήστε τις παρακάτω μονάδες PowerShell αμέσως:

Ενότητα SharePoint PnP PowerShell



Ανοίξτε το εργαλείο PowerShell ως διαχειριστής και, στη συνέχεια, εκτελέστε την ακόλουθη εντολή:

Install-Module SharePointPnPPowerShellOnline -Force

SharePoint Online Management Shell

Ο σκοπός αυτού του εργαλείου είναι να τροποποιήσει τα δικαιώματα στον λογαριασμό OneDrive των χρηστών.

πώς να επιλέξετε περισσότερα από ένα αρχεία

Κατεβάστε και εγκαταστήστε το δωρεάν από microsoft.com .

Ενότητα MSOnline V1 Powershell

Για να εγκαταστήσετε αυτήν την τελική ενότητα, εκτελέστε την ακόλουθη εντολή στο PowerShell ως διαχειριστής:

Install-Module MSOnline -Force

Πώς να μεταφέρετε αρχεία OneDrive σε άλλο λογαριασμό

Για να μεταφέρετε αρχεία από τον λογαριασμό σας στο OneDrive σε άλλον, πρέπει να ανοίξετε το PowerShell και στη συνέχεια να εκτελέσετε το παρεχόμενο σενάριο.

Ανοίξτε το PowerShell

  Αναζήτηση Microsoft PowerShell

Ανοίξτε το Visual Studio Code ή το PowerShell.

Μπορείτε να το κάνετε αυτό κάνοντας κλικ στο κουμπί Αναζήτηση και, στη συνέχεια, αναζητήστε το PowerShell.

Από εκεί, κάντε δεξί κλικ στην εφαρμογή και, στη συνέχεια, επιλέξτε την επιλογή που έχει σχεδιαστεί για να ανοίξει το εργαλείο σε λειτουργία διαχειριστή.

Εκτελέστε το σενάριο

  Σενάριο OneDrive PowerShell

Στη συνέχεια, πρέπει να εκτελέσετε το σχετικό σενάριο. Μπορείτε να το βρείτε στο κάτω μέρος του άρθρου.

Επιλέξαμε να το κάνουμε αυτό γιατί το σενάριο είναι αρκετά μεγάλο.

Αφού προσθέσετε το σενάριο, πατήστε το πλήκτρο Enter στο πληκτρολόγιό σας.

Μεταφέρετε τα αρχεία

Τέλος, ήρθε η ώρα να μεταφέρετε τα αρχεία σε άλλο λογαριασμό OneDrive.

Βλέπετε, αμέσως μετά το πάτημα του πλήκτρου Enter, θα σας ζητηθεί να προσθέσετε τον λογαριασμό email Το όνομα χρήστη του χρήστη που αναχωρεί .

Θα χρειαστείτε επίσης Το όνομα χρήστη του χρήστη προορισμού . Αυτός είναι ο χρήστης του OneDrive όπου θα αντιγραφούν και θα μεταφερθούν τα αρχεία.

Τέλος, θα σας ζητηθεί να προσθέσετε Το όνομα χρήστη του διαχειριστή του Office 365 .

Περιμένετε μέχρι το σενάριο να κάνει τη δουλειά του πριν ελέγξετε τον λογαριασμό λήψης για να δείτε εάν τα αρχεία μεταφέρθηκαν σωστά.

Αντιγράψτε και επικολλήστε το παρακάτω σενάριο:

$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

Μπορείτε να βρείτε το σενάριο σε αυτό Σελίδα Reddit .

προσθέστε κινούμενο κείμενο στο gif

ΑΝΑΓΝΩΣΗ : Πώς να εξαγάγετε CSV στο PowerShell στα Windows

Μπορεί το PowerShell να έχει πρόσβαση στο OneDrive;

Το SharePoint Online PowerShell θα επιτρέψει στους χρήστες να συνδεθούν σε άλλο λογαριασμό OneDrive χρησιμοποιώντας το εργαλείο PowerShell. Θα σας ζητήσει να εισαγάγετε τον κωδικό πρόσβασής σας προκειμένου το PowerShell να αρχίσει να εργάζεται στους λογαριασμούς σας στο OneDrive μέσω cmdlet.

Είναι δυνατή η πρόσβαση στο OneDrive από εξωτερικούς χρήστες;

Ο λογαριασμός σας στο OneDrive είναι προσβάσιμος από εξωτερικούς χρήστες, αλλά μόνο εάν το επιτρέψετε. Οι χρήστες μπορούν να έχουν πρόσβαση στα αρχεία σας για πάντα ή για μια καθορισμένη χρονική περίοδο. Μπορείτε επίσης να περιορίσετε το τι μπορούν να κάνουν.

Πώς να αντιγράψετε αρχεία από το OneDrive άλλου ατόμου;

Έχετε τις ακόλουθες επιλογές εάν θέλετε να αντιγράψετε αρχεία από το OneDrive άλλου ατόμου:

  • Ανοίξτε το OneDrive στο πρόγραμμα περιήγησής σας χρησιμοποιώντας τον σύνδεσμο, επιλέξτε τα αρχεία που θέλετε να αντιγράψετε και κάντε κλικ στην επιλογή Λήψη. Αυτό θα το κατεβάσει στον υπολογιστή σας.
  • Ανοίξτε τον λογαριασμό OneDrive χρησιμοποιώντας τον σύνδεσμο, επιλέξτε τα αρχεία που θέλετε να αντιγράψετε και κάντε κλικ στην Αντιγραφή σε.

Αυτό είναι!

  Πώς να μεταφέρετε αρχεία OneDrive σε άλλο χρήστη μέσω του PowerShell
Δημοφιλείς Αναρτήσεις