Отправка локального содержимого в SharePoint с помощью командлетов PowerShell

Примечание.

Средство миграции SharePoint (SPMT) помогает упростить процесс миграции. SPMT предоставляет интерфейс, подобный мастеру, который поможет вам перенести сайты групп SharePoint Server или сетевые файловые ресурсы в Microsoft 365. Он доступен для всех пользователей Microsoft 365: Скачайте SPMT.

Важно!

В настоящее время средство миграции SharePoint недоступно для пользователей Office 365 под управлением 21Vianet в Китае.

В этой статье показано, как использовать командлеты PowerShell для миграции SharePoint, чтобы перенести содержимое из локального файлового ресурса в Microsoft 365.

Командлеты PowerShell для миграции SharePoint предназначены для перемещения локального содержимого из общих папок. Они требуют минимального числа вызовов CSOM и используют временное хранилище BLOB-объектов Azure для обработки переноса большого количества данных.

Предварительные условия

  • Поддерживаемые операционные системы:

    • Windows 7 с пакетом обновления 1
    • Windows 8
    • Windows Server 2008 R2 с пакетом обновления 1 (SP1)
    • Windows Server 2008 с пакетом обновления 2
    • Windows Server 2012, Windows Server 2012 R2
  • Windows PowerShell 4.0

Примечание.

Разрешения. На конечном сайте у вас должны быть права администратора семейства веб-сайтов.

Прежде чем начать

Шаг 1. Установка командной консоли SharePoint Online

  1. Удалите все предыдущие версии командной консоли SharePoint Online.

  2. Скачайте и установите командную консоль SharePoint Online.

  3. Откройте командную консоль SharePoint Online и выберите пункт Запуск от имени администратора.

Шаг 2. Настройка рабочего каталога

Прежде чем начинать миграцию, необходимо настроить рабочий каталог с использованием двух пустых папок. Этим папкам не требуется много места на диске, так как они будут содержать только XML-файлы.

  1. Создайте папку для временного пакета.

  2. Создайте папку для окончательного пакета.

Шаг 3. Определение расположений и учетных данных

Определите свои учетные данные и расположения исходных и конечных файлов, а также веб-расположение.

На локальном компьютере откройте командную консоль SharePoint Online. Выполните указанные ниже команды, вставив свои значения.

$cred = (Get-Credential admin@contoso.com)
$sourceFiles = '\\fileshare\users\charles'
$sourcePackage = 'C:\migration\CharlesDocumentsPackage_source'
$targetPackage = 'C:\migration\CharlesDocumentsPackage_target'
$targetWeb = 'https://contoso-my.sharepoint.com/personal/charles_contoso_com'
$targetDocLib = 'Documents'

New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $sourcePackage -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib -IgnoreHidden -ReplaceInvalidCharacters

Шаг 4. Создание нового пакета содержимого локальной общей папки

На этом шаге создается пакет миграции из общей папки. Чтобы создать пакет содержимого из общей папки, команда считывает список содержимого, New-SPOMigrationPackage целевого по исходному пути, и создает XML-код для выполнения миграции.

Следующие параметры обязательны, если не указано иное:

  • SourcefilesPath: путь к содержимому, которое планируется перенести.

  • OutputPackagePath: путь к временной папке.

  • TargetWebUrl: путь к конечному сайту.

  • TargetDocumentLibraryPath: путь к библиотеке документов на сайте.

  • IgnoreHidden: пропуск скрытых файлов (необязательно).

  • ReplaceInvalidCharacters: по возможности исправляет недопустимые символы (необязательно).

Пример:

В следующем примере показано, как создать новый пакет из общей папки. В нем игнорируются скрытые файлы и заменяются неподдерживаемые символы в имени файла/папки.

    New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $sourcePackage -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib -IgnoreHidden -ReplaceInvalidCharacters`

Шаг 5. Преобразование пакета содержимого для конечного сайта

ConvertTo-SPOMigrationTargetedPackage Используйте команду для преобразования SML, созданного во временной папке. Она сохраняет новый набор файлов с метаданными целевого пакета миграции в целевой каталог. Это окончательный пакет.

Примечание.

Учетные данные администратора конечного семейства веб-сайтов используются для сбора данных, чтобы подключиться к семейству веб-сайтов этих данных.

Есть шесть обязательных параметров для ввода (другие не обязательны):

  • ParallelImport: указывает средству использовать параллельные потоки для оптимизации производительности.

  • SourceFiles: путь к каталогу с исходными файлами содержимого пакета.

  • SourcePackagePath: путь к папке временного пакета.

  • OutputPackagePath: путь к папке окончательного пакета.

  • Credentials: учетные данные SharePoint с правами администратора на конечном сайте.

  • TargetWebUrl: URL-адрес конечного сайта.

  • TargetDocumentLibraryPath: путь к вашей целевой библиотеке.

Пример:

В этом примере показано преобразование пакета в целевой путем поиска данных в конечном семействе веб-сайтов. Для ускорения переноса общей папки используется параметр -ParallelImport.

$finalPackages = ConvertTo-SPOMigrationTargetedPackage -ParallelImport -SourceFilesPath $sourceFiles -SourcePackagePath $sourcePackage -OutputPackagePath $targetPackage -Credentials $cred -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib`

Шаг 6. Передача содержимого для импорта

На этом шаге используется команда Invoke-SPOMigrationEncryptUploadSubmit, создающая задание переноса в конечном семействе веб-сайтов, а затем возвращающая GUID, представляющий собой идентификатор задания. Эта команда отправляет зашифрованные исходные файлы и манифесты во временное хранилище BLOB-объектов Azure для задания.

Следует указать четыре обязательных параметра. Остальные являются необязательными.

  • TargetwebURL: URL-адрес конечного веб-сайта.

  • SourceFilesPath: путь к импортируемым файлам.

  • SourcePackagePath: путь к окончательному манифесту импортируемых файлов

  • Credentials: учетные данные SharePoint с правами администратора семейства веб-сайтов на конечном сайте.

Пример 1

В этом примере показана отправка данных пакета для создания нового задания переноса.

 $job = Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $sourceFiles -SourcePackagePath $targetPackage -Credentials $cred -TargetWebUrl $targetWeb

Пример 2

В этом примере показана отправка данных пакета с целью создания новых заданий переноса для параллельного импорта.

$jobs = $finalPackages | % {Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $_.FilesDirectory.FullName -SourcePackagePath $_.PackageDirectory.FullName -Credentials $cred -TargetWebUrl $targetWeb}

Для каждого отправленного задания командлет Invoke возвращает указанные ниже свойства.

  • JobId: идентификатор задания в SPO.

  • ReportingQueueUri: очередь Azure в SharePoint, в которой хранятся сообщения о ходе миграции в режиме реального времени.

  • Encryption: ключ и способ шифрования, использованные для отправки содержимого в Azure. Этот ключ требуется для расшифровки сообщений очереди и журналов импорта.

Если вы используете собственную учетную запись хранения Azure для отправки содержимого в хранилище, используйте Set-SPOMigrationPackageAzureSource и Submit-SPOMigrationJob.

Важно!

Если вы решите использовать службу хранилища Azure, с вас может взиматься плата за использование полосы пропускания. Выставление счетов будет зависеть от типа предложения Azure и размера миграции. Общий уровень цен см. на странице Стоимость пропускной способности.

(Необязательно) Шаг 7. Обработка и мониторинг миграции SharePoint

После того как задание отправлено, для выборки и переноса содержимого в место назначения взаимодействуют только Azure и SharePoint. В основе этого процесса лежит задание таймера, т. е. это очередь, задания в которой обрабатываются в порядке поступления. Этот процесс не мешает одному пользователю ставить в очередь другие задания.

Если не запущены другие задания, может возникать 1-минутная задержка.

Проверка состояния задания

Для проверки состояния задания воспользуйтесь ключом EncryptionKey, возвращенным на шаге 6, чтобы просмотреть обновления в реальном времени, публикуемые в учетной записи службы хранилища Azure.

Просмотр журналов

Если вы используете собственную учетную запись службы хранилища Azure, журналы со всеми событиями можно найти в контейнере манифеста в службе хранилища Azure. На этом этапе можно безопасно удалить эти контейнеры, если вы не хотите хранить их в Azure в качестве резервной копии.

Если были ошибки или предупреждения, файлы .err или .won создаются в контейнере манифеста.

Если вы используете временную службу хранилища Azure, созданную командой Invoke-SPOMigrationEncryptUploadSubmit на шаге 6, вы можете получить URL-адрес SAS журнала импорта, расшифровав сообщение очереди Azure со значением "Event" JobLogFileCreate. С помощью URL-адреса SAS журнала импорта вы можете скачать файл журнала и расшифровать его, используя ключ шифрования, возвращенный на шаге 6.

Сценарии для повторного использования

Используйте следующий пример сценария. Он содержит этапы от определения расположений и учетных данных до отправки данных пакета и создания задания миграции.

$userName = "admin@contoso.onmicrosoft.com"
$sourceFiles = "d:\data\documents"
$packagePath = "d:\data\documentPackage"
$spoPackagePath = "d:\data\documentPackageForSPO"
$targetWebUrl = "https://contoso.sharepoint.com/sites/finance"
$targetLibrary = "Documents"
$cred = Get-Credential $userName
  
New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $packagePath -TargetWebUrl $targetWebUrl -TargetDocumentLibraryPath $targetLibrary -IgnoreHidden -ReplaceInvalidCharacters

Преобразование пакета в целевой путем поиска данных в конечном семействе веб-сайтов.

$finalPackages = ConvertTo-SPOMigrationTargetedPackage -SourceFilesPath $sourceFiles -SourcePackagePath $packagePath -OutputPackagePath $spoPackagePath -TargetWebUrl $targetWebUrl -TargetDocumentLibraryPath $targetLibrary -Credentials $cred

Отправка данных пакета для создания задания миграции

$job = Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $sourceFiles -SourcePackagePath $spoPackagePath -Credentials $cred -TargetWebUrl $targetWebUrl
  
This sample shows how to get the returned information of a job, which comes in the form of a GUID.
  
```powershell
$job = $jobs[0]
$job.JobId
Guid
----
779c4b3b-ec24-4705-bb58-c38f4329418c

В этом примере показано получение параметра $job.ReportingQueueURi.AbosoluteUri.

# To obtain the $job.ReportingQueueUri.AbsoluteUri
https://spodm1bn1m013pr.queue.core.windows.net/953pq20161005-f84b9e51038b4139a179f973e95a6d6f?sv=2014-02-14&sig=TgoUcrMk1Pz8VzkswQa7owD1n8TvLmCQFZGzyV7WV8M%3D&st=2016-10-04T07%3A00%3A00Z&se=2016-10-26T07%3A00%3A00Z&sp=rap

В этом примере показано получение ключа шифрования и приведены возвращаемые сведения.

$job.Encryption
EncryptionKey                                       EncryptionMethod
-----------------------                            ------------------
{34, 228, 244, 194...}                              AES256CBC

Важно!

Все сообщения шифруются в очереди. Для чтения ReportingQueue требуется ключ шифрования EncryptionKey.

Рекомендации и ограничения

Описание Рекомендация
Размер пакета 10-20 ГБ
Используйте параметр -ParallelImport для миграции из общей папки, который автоматически разделяет большой пакет на более мелкие.
Размер файла
2 ГБ
Целевой размер
Целевой сайт должен оставаться недоступным для пользователей до завершения миграции.
Ограничения SharePoint
Ограничения служб в SharePoint для Microsoft 365

Ограничения Azure

Ресурс Значение по умолчанию/ограничение
ТБ на учетную запись хранилища
500
Максимальный размер одного контейнера больших двоичных объектов, таблицы или очереди.
500
Максимальное количество контейнеров больших двоичных объектов, больших двоичных объектов, общих файловых ресурсов, таблиц, очередей, объектов или сообщений на одну учетную запись хранения.
Единственным ограничением является емкость учетной записи хранения 500 ТБ.
Целевая пропускная способность для одного большого двоичного объекта
До 60 МБ в секунду или до 500 запросов в секунду.

Ссылки на командлеты для SharePoint Online