Sådan overføres OneDrive-filer til en anden bruger via PowerShell

Sadan Overfores Onedrive Filer Til En Anden Bruger Via Powershell



Overførsel af filer fra din Microsoft OneDrive-konto til en anden bruger er let i den forstand, at du kan downloade indholdet fra dit OneDrive og derefter manuelt uploade dem til den anden konto. I dette indlæg viser vi dig hvordan overføre OneDrive-filer til en anden bruger via PowerShell .



hvordan man sletter en Microsoft-konto

  Sådan overføres OneDrive-filer til en anden bruger via PowerShell





Ting at overveje

Når det kommer til at uploade filer fra din OneDrive til en anden konto, er det en opgave, der vil tage noget tid, fordi det på nuværende tidspunkt ikke er muligt at uploade filer, der er større end 250 MB. Den gode nyhed er, at PowerShell noterer alle filer, den ikke kan uploade, så du kan opsøge dem og dele dem via den almindelige metode.





Før du uploader filerne til den anden OneDrive-konto, vil filerne først blive downloadet til din computer, så sørg for, at du har nok plads på din harddisk eller SSD, før du går videre. Og da din internetforbindelse er påkrævet, vil den samlede overførselshastighed afhænge af netværkets kvalitet.



Nu skal vi bemærke, at to-faktor-godkendelse ikke findes på administratorkontoen, så opret en midlertidig administratorkonto, der ikke har 2FA kun til dette formål.

Ting du får brug for

Vi vil bruge et specielt script til at flytte filerne fra én OneDrive-konto til en anden. Så for at scriptet skal fungere med problemer, skal du installere følgende PowerShell-moduler lige nu:

SharePoint PnP PowerShell-modul



Åbn PowerShell-værktøjet som administrator, og kør derefter følgende kommando:

Install-Module SharePointPnPPowerShellOnline -Force

SharePoint Online Management Shell

Formålet med dette værktøj er at ændre tilladelserne på brugernes OneDrive-konto.

Download og installer det gratis fra microsoft.com .

MSOnline V1 Powershell-modul

For at installere dette sidste modul skal du køre følgende kommando i PowerShell som administrator:

Install-Module MSOnline -Force

Sådan overfører du OneDrive-filer til en anden konto

For at overføre filer fra din OneDrive-konto til en anden, skal du åbne PowerShell og derefter køre det medfølgende script.

Åbn PowerShell

  Microsoft PowerShell-søgning

Åbn Visual Studio Code eller PowerShell.

Du kan gøre dette ved at klikke på knappen Søg og derefter søge efter PowerShell.

Derfra skal du højreklikke på appen og derefter vælge den mulighed, der er designet til at åbne værktøjet i Admin-tilstand.

Kør scriptet

  OneDrive PowerShell Script

Windows 10-spiltilstand mangler

Dernæst skal du køre det relevante script. Du kan finde den nederst i artiklen.

Vi valgte at gøre dette, fordi manuskriptet er ret langt.

Når du har tilføjet scriptet, skal du trykke på Enter-tasten på dit tastatur.

Overfør filerne

Endelig er det nu tid til at overføre filerne til en anden OneDrive-konto.

Du ser, lige efter at du har trykket på Enter-tasten, bliver du bedt om at tilføje e-mail-kontoen Brugernavnet på den afgående bruger .

Du skal også bruge Brugernavnet på destinationsbrugeren . Dette er OneDrive-brugeren, hvor filerne vil blive kopieret og overført til.

Til sidst bliver du bedt om at tilføje Brugernavnet på din Office 365 Admin .

Vent på, at scriptet gør sit, før du tjekker den modtagende konto for at se, om filerne blev overført korrekt.

Kopiér og indsæt nedenstående script:

$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

Du kan finde scriptet om dette Reddit side .

få windows 10 til at ligne 7

LÆS : Sådan eksporteres CSV i PowerShell på Windows

Kan PowerShell få adgang til OneDrive?

SharePoint Online PowerShell vil gøre det muligt for brugere at oprette forbindelse til en anden OneDrive-konto ved hjælp af PowerShell-værktøjet. Den vil bede dig om at indsætte din adgangskode, for at PowerShell kan begynde at arbejde på dine OneDrive-konti ved hjælp af cmdlets.

Kan OneDrive tilgås af eksterne brugere?

Din OneDrive-konto kan tilgås af eksterne brugere, men kun hvis du tillader det. Brugere kan have adgang til dine filer for evigt eller i en bestemt tidsperiode. Du kan også begrænse, hvad de kan gøre.

Hvordan kopierer man filer fra en anden persons OneDrive?

Du har følgende muligheder, hvis du vil kopiere filer fra en anden persons OneDrive:

  • Åbn OneDrive i din browser ved hjælp af linket, vælg de filer, du vil kopiere, og klik på Download. Dette vil downloade det til din computer.
  • Åbn OneDrive-kontoen ved hjælp af linket, vælg de filer, du vil kopiere, og klik på Kopier til.

Det er det!

  Sådan overføres OneDrive-filer til en anden bruger via PowerShell
Populære Indlæg