OneDrive-fájlok átvitele egy másik felhasználónak a PowerShell segítségével

Onedrive Fajlok Atvitele Egy Masik Felhasznalonak A Powershell Segitsegevel



A fájlok átvitele a Microsoft OneDrive-fiókból egy másik felhasználóhoz egyszerű abban az értelemben, hogy letöltheti a tartalmat a OneDrive-ról, majd manuálisan feltöltheti őket a másik fiókba. Ebben a bejegyzésben megmutatjuk, hogyan kell átviheti a OneDrive fájlokat egy másik felhasználónak a PowerShell segítségével .



  OneDrive-fájlok átvitele egy másik felhasználónak a PowerShell segítségével





Megfontolandó dolgok

Amikor a OneDrive-ról egy másik fiókba kell fájlokat feltölteni, ez egy kis időt igénybe vesz, mivel jelenleg nem lehet 250 MB-nál nagyobb fájlokat feltölteni. A jó hír az, hogy a PowerShell feljegyzi az összes fájlt, amelyet nem tud feltölteni, így megkeresheti és megoszthatja őket a szokásos módszerrel.





Mielőtt feltölti a fájlokat a másik OneDrive-fiókba, a fájlok először letöltődnek a számítógépére, ezért a továbblépés előtt győződjön meg róla, hogy elegendő hely van a merevlemezen vagy az SSD-n. És mivel internetkapcsolat szükséges, az átvitel általános sebessége a hálózat minőségétől függ.



Most meg kell jegyeznünk, hogy a kéttényezős hitelesítés nem létezik a rendszergazdai fiókban, ezért hozzon létre egy ideiglenes rendszergazdai fiókot, amely nem rendelkezik 2FA-val csak erre a célra.

Olyan dolgok, amelyekre szükséged lesz

Egy speciális szkriptet használunk a fájlok egyik OneDrive-fiókból a másikba való áthelyezéséhez. Tehát, hogy a szkript problémákkal működjön, telepítse a következő PowerShell-modulokat most:

SharePoint PnP PowerShell-modul



Nyissa meg a PowerShell eszközt rendszergazdaként, majd futtassa a következő parancsot:

Install-Module SharePointPnPPowerShellOnline -Force

SharePoint Online Management Shell

Ennek az eszköznek az a célja, hogy módosítsa a felhasználók OneDrive-fiókjának engedélyeit.

Töltse le és telepítse ingyenesen innen microsoft.com .

MSOnline V1 Powershell modul

Az utolsó modul telepítéséhez futtassa a következő parancsot a PowerShellben rendszergazdaként:

Install-Module MSOnline -Force

OneDrive-fájlok átvitele másik fiókba

Ha fájlokat szeretne átvinni OneDrive-fiókjából egy másikba, nyissa meg a PowerShellt, majd futtassa a mellékelt szkriptet.

nincs engedélye menteni ezen a helyen

Nyissa meg a PowerShellt

  Microsoft PowerShell keresés

Nyissa meg a Visual Studio Code-ot vagy a PowerShellt.

Ezt úgy teheti meg, hogy a Keresés gombra kattint, majd rákeres a PowerShellre.

Innen kattintson a jobb gombbal az alkalmazásra, majd válassza ki az eszköz Adminisztrátori módban való megnyitásához tervezett lehetőséget.

Futtassa a szkriptet

  OneDrive PowerShell-szkript

Ezután futtassa a megfelelő szkriptet. A cikk alján megtalálod.

Azért döntöttünk így, mert a forgatókönyv meglehetősen hosszú.

A szkript hozzáadása után nyomja meg az Enter billentyűt a billentyűzeten.

Vigye át a fájlokat

Végül itt az ideje, hogy átvigye a fájlokat egy másik OneDrive-fiókba.

Látja, közvetlenül az Enter billentyű lenyomása után a rendszer felkéri az e-mail fiók hozzáadására A távozó felhasználó felhasználóneve .

Önnek is szüksége lesz A célfelhasználó felhasználóneve . Ez az a OneDrive-felhasználó, akire a fájlok másolásra és átvitelre kerülnek.

Végül a rendszer felkéri, hogy adja hozzá Az Office 365 rendszergazda felhasználóneve .

Várja meg, amíg a szkript elvégzi a dolgát, mielőtt ellenőrizné a fogadó fiókot, hogy megbizonyosodjon arról, hogy a fájlok átvitele megfelelően történt-e.

Másolja és illessze be az alábbi szkriptet:

$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

A forgatókönyvet ezen találod Reddit oldal .

OLVAS : A CSV exportálása a PowerShellben Windows rendszeren

A PowerShell hozzáférhet a OneDrive-hoz?

A SharePoint Online PowerShell lehetővé teszi a felhasználók számára, hogy egy másik OneDrive-fiókhoz kapcsolódjanak a PowerShell eszköz segítségével. Meg fogja kérni, hogy adja meg a jelszavát, hogy a PowerShell parancsmagok segítségével megkezdhesse a OneDrive-fiókok kezelését.

Hozzáférhetnek a OneDrive-hoz külső felhasználók?

OneDrive-fiókjához külső felhasználók hozzáférhetnek, de csak akkor, ha Ön engedélyezi. A felhasználók örökre vagy meghatározott ideig hozzáférhetnek a fájlokhoz. Azt is korlátozhatja, hogy mit tehetnek.

Hogyan másolhat fájlokat egy másik személy OneDrive-járól?

A következő lehetőségek állnak rendelkezésére, ha fájlokat szeretne másolni egy másik személy OneDrive-járól:

  • Nyissa meg a OneDrive-ot böngészőjében a hivatkozás segítségével, válassza ki a másolni kívánt fájlokat, majd kattintson a Letöltés gombra. Ezzel letölti a számítógépére.
  • Nyissa meg a OneDrive-fiókot a hivatkozás segítségével, válassza ki a másolni kívánt fájlokat, majd kattintson a Másolás ide gombra.

Ez az!

  OneDrive-fájlok átvitele egy másik felhasználónak a PowerShell segítségével
Népszerű Bejegyzések