Передача файлов из вашей учетной записи Microsoft OneDrive другому пользователю проста в том смысле, что вы можете загрузить содержимое из своего OneDrive, а затем вручную загрузить его в другую учетную запись. В этом посте мы покажем вам, как передавать файлы OneDrive другому пользователю через PowerShell .
Что следует учитывать
Когда дело доходит до загрузки файлов из вашего OneDrive в другую учетную запись, это задача, которая займет некоторое время, потому что в настоящее время невозможно загружать файлы размером более 250 МБ. Хорошей новостью является то, что PowerShell запишет все файлы, которые не может загрузить, чтобы вы могли найти их и поделиться ими обычным способом.
количество високосных лет между двумя датами
Прежде чем загружать файлы в другую учетную запись OneDrive, файлы сначала будут загружены на ваш компьютер, поэтому перед тем, как двигаться дальше, убедитесь, что у вас достаточно места на жестком диске или SSD. А поскольку требуется подключение к Интернету, общая скорость передачи будет зависеть от качества сети.
Теперь мы должны отметить, что двухфакторная аутентификация не существует в учетной записи администратора, поэтому создайте временную учетную запись администратора, не имеющую 2FA, только для этой цели.
Вещи, которые вам понадобятся
Мы будем использовать специальный скрипт для перемещения файлов из одной учетной записи OneDrive в другую. Итак, чтобы скрипт работал с проблемами, пожалуйста, установите следующие модули PowerShell прямо сейчас:
Модуль SharePoint PnP PowerShell
Откройте инструмент PowerShell от имени администратора, затем выполните следующую команду:
Install-Module SharePointPnPPowerShellOnline -Force
Командная консоль SharePoint Online
Цель этого инструмента — изменить разрешения для учетной записи OneDrive пользователя.
Загрузите и установите его бесплатно с microsoft.com .
Модуль MSOnline V1 Powershell
Чтобы установить этот последний модуль, выполните следующую команду в PowerShell от имени администратора:
Install-Module MSOnline -Force
Как перенести файлы OneDrive в другую учетную запись
Чтобы перенести файлы из вашей учетной записи OneDrive в другую, вам нужно открыть PowerShell, а затем запустить предоставленный скрипт.
Служба клиента групповой политики не смогла войти в систему. доступ запрещен
Откройте PowerShell
Откройте код Visual Studio или PowerShell.
Вы можете сделать это, нажав кнопку «Поиск», а затем найдите PowerShell.
Оттуда щелкните правой кнопкой мыши приложение, затем выберите параметр, предназначенный для открытия инструмента в режиме администратора.
Запустить скрипт
Далее необходимо запустить соответствующий скрипт. Вы можете найти его внизу статьи.
Мы решили сделать это, потому что сценарий довольно длинный.
После добавления скрипта нажмите клавишу Enter на клавиатуре.
Перенесите файлы
Наконец, пришло время перенести файлы в другую учетную запись OneDrive.
Видите ли, сразу после нажатия клавиши Enter вам будет предложено добавить учетную запись электронной почты. Имя пользователя уходящего пользователя .
Вам также понадобится Имя пользователя целевого пользователя . Это пользователь 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
Вы можете найти сценарий на этом Реддит-страница .
ЧИТАТЬ : Как экспортировать CSV в PowerShell в Windows
Может ли PowerShell получить доступ к OneDrive?
SharePoint Online PowerShell позволит пользователям подключаться к другой учетной записи OneDrive с помощью инструмента PowerShell. Вам будет предложено ввести пароль, чтобы PowerShell начал работать с вашими учетными записями OneDrive с помощью командлетов.
рассчитать процентное изменение в Excel
Могут ли внешние пользователи получить доступ к OneDrive?
К вашей учетной записи OneDrive могут получить доступ внешние пользователи, но только если вы разрешите это. Пользователи могут иметь доступ к вашим файлам навсегда или на определенный период времени. Вы также можете ограничить то, что они могут сделать.
Как скопировать файлы из OneDrive другого человека?
У вас есть следующие варианты, если вы хотите скопировать файлы из OneDrive другого человека:
- Откройте OneDrive в браузере по ссылке, выберите файлы, которые хотите скопировать, и нажмите «Загрузить». Это загрузит его на ваш компьютер.
- Откройте учетную запись OneDrive по ссылке, выберите файлы, которые хотите скопировать, и нажмите «Копировать в».
Вот и все!