Миграция на SharePoint с помощью PowerShell
В этой статье описаны новые командлеты PowerShell на основе модуля миграции средства миграции SharePoint (SPMT). Их можно использовать для перемещения файлов из локальных библиотек документов SharePoint 2010 и SharePoint 2013 и элементов списков, а также файловых ресурсов в Microsoft 365. Сведения обо всех текущих командлетах PowerShell, связанных с миграцией SharePoint, см. в справочнике по командлетам Microsoft SharePoint Migration Tool.
Командлеты PowerShell имеют те же функциональные возможности, что и средство миграции SharePoint.
Примечание.
Эти командлеты PowerShell в настоящее время недоступны пользователям Office 365 под управлением 21Vianet в Китае.
Требования к системе
Рекомендуемые требования для оптимальной производительности*
Описание | Рекомендация |
---|---|
ЦП | 64-разрядный четырехъядерный процессор (или более производительный) |
ОЗУ | 16 ГБ |
Локальное хранилище | Жесткий диск: 150 ГБ свободного места |
Операционная система | Windows Server 2016 Standard или Datacenter Windows Server 2012 R2 Клиент Windows 10 .NET Framework 4.6.2 |
Распространяемый компонент Microsoft Visual C++ 2015 | Требуется для переноса данных OneNote |
Важно!
PowerShell 5.0x и платформа .NET Framework 4.6.2 или более поздней версии требуются для переноса путей к файлам до 400 символов.
Минимальные требования (низкая производительность)
Описание | Минимальное требование |
---|---|
ЦП | 64-разрядный двухъядерный процессор с частотой 1,4 ГГц (или более производительный) |
ОЗУ | 8 ГБ |
Локальное хранилище | Жесткий диск: 150 ГБ свободного места |
Сетевая карта | Высокоскоростное подключение к Интернету |
Операционная система | Windows Server 2008 R2 Windows 7 Windows 8 или 8.1 .NET Framework 4.6.2 |
Распространяемый компонент Microsoft Visual C++ 2015 | Требуется для переноса данных OneNote. |
PowerShell | PowerShell 5.x требуется для поддержки миграции путей к файлам до 400 символов. PowerShell 6.0 или более поздней версии не поддерживается. |
Перед началом работы
Подготовьте microsoft 365 с помощью существующего каталога Active Directory или одного из других вариантов добавления учетных записей в Microsoft 365. Дополнительные сведения см. в разделах Интеграция Microsoft 365 с локальными средами и Добавление пользователей в Приложения Microsoft 365 для бизнеса.
Откройте папку:
$env:UserProfile\Documents\WindowsPowerShell\Modules\Microsoft.SharePoint.MigrationTool.PowerShell
Убедитесь в том, что в ней есть библиотеки DLL. Если вы используете OneDrive, возможно, потребуется скопировать папку WindowsPowershell в OneDrive или документы.
Из этого расположения запустите следующую команду PowerShell
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
Создание и инициализация сеанса миграции
- Register-SPMTMigration
Этот командлет создает и инициализирует сеанс миграции. Инициализация настраивает параметры миграции на уровне сеанса. Если конкретные параметры не определены, будут использоваться параметры по умолчанию. После регистрации сеанса можно добавить задачу в сеанс и начать миграцию.
Добавление задачи миграции
- Add-SPMTTask
Используйте этот командлет, чтобы добавить новую задачу миграции в зарегистрированный сеанс миграции. В настоящее время разрешены три различных типа задач: задача общей папки, задача SharePoint и определяемая задача JSON. Примечание. Повторяющиеся задачи не допускаются.
Удаление задачи
- Remove-SPMTTask
Используйте этот командлет для удаления существующей задачи миграции из зарегистрированного сеанса миграции.
Начало миграции
- Start-SPMTMigration
Этот командлет запустит зарегистрированную миграцию SPMT.
Возврат объекта текущего сеанса
- Get-SPMTMigration
Возвращает объект текущего сеанса. Этот командлет включает состояние текущих задач и параметры текущего уровня сеанса. Текущее состояние задачи включает в себя:- количество проверенных файлов;
- количество перенесенных файлов;
- возможные сообщения об ошибках миграции.
Остановка текущей миграции
- Stop-SPMTMigration
Этот командлет отменит текущую миграцию.
Отображение сведений о состоянии миграции в консоли
- Show-SPMTMigration
При запуске миграции в режиме NoShow командлет Show-SPMTMigration отобразит идентификатор задачи, расположение источника данных, целевое расположение и состояние миграции в консоли. Нажатие клавиш CTRL+C вернется в режим NoShow .
Удаление сеанса миграции
- Unregister-SPMTMigration
Используйте этот командлет для удаления сеанса миграции.
Примеры сценариев
Пример 1. ИТ-администратор добавляет локальную задачу SharePoint и начинает миграцию в фоновом режиме.
#Define SharePoint 2013 data source#
$SourceSiteUrl = "http://YourOnPremSite/"
$OnPremUserName = "Yourcomputer\administrator"
$OnPremPassword = ConvertTo-SecureString -String "OnPremPassword" -AsPlainText -Force
$SPCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $OnPremUserName, $OnPremPassword
$SourceListName = "SourceListName"
#Define SharePoint target#
$SPOUrl = "https://contoso.sharepoint.com"
$UserName = "admin@contoso.onmicrosoft.com"
$PassWord = ConvertTo-SecureString -String "YourSPOPassword" -AsPlainText -Force
$SPOCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $UserName, $PassWord
$TargetListName = "TargetListName"
#Define File Share data source#
$FileshareSource = "YourFileShareDataSource"
#Import SPMT Migration Module#
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
#Register the SPMT session with SharePoint credentials#
Register-SPMTMigration -SPOCredential $SPOCredential -Force
#Add two tasks into the session. One is SharePoint migration task, and another is File Share migration task.#
Add-SPMTTask -SharePointSourceCredential $SPCredential -SharePointSourceSiteUrl $SourceSiteUrl -TargetSiteUrl $SPOUrl -MigrateAll
Add-SPMTTask -FileShareSource $FileshareSource -TargetSiteUrl $SPOUrl -TargetList $TargetListName
#Start Migration in the console. #
Start-SPMTMigration
Пример 2. ИТ-администратор хочет вывести миграцию из фонового режима NoShow и запускает указанный ниже командлет, чтобы ход выполнения миграции отображался в консоли.
Show-SPMTMigration
Пример 3. ИТ-Администратор хочет выполнить массовую миграцию, загрузив файл .csv. Как образец в этом примере используется файл SPMT.csv.
Load CSV;
$csvItems = import-csv "C:\spmt.csv" -Header c1,c2,c3,c4,c5,c6
ForEach ($item in $csvItems)
{
Write-Host $item.c1
Add-SPMTTask -FileShareSource $item.c1 -TargetSiteUrl $item.c4 -TargetList $item.c5 -TargetListRelativePath $item.c6
}
В файле spmt.csv определены две задачи миграции.
D:\MigrationTest\Files\Average_1M\c,,,https://SPOSite.sharepoint.com,Documents,Test
C:\work\Powershell\negative,,,https://SPOSite.sharepoint.com/,Documents,DocLibrary_SubfolderName
Фрагменты кода для массовой миграции путем загрузки одного JSON-файла:
#Load JSON:
$jsonItems = Get-Content -Raw -Path "C:\spmt.json" | ConvertFrom-Json
ForEach ($taskItem in $jsonItems.Tasks)
{
$jsonString = ConvertTo-Json $taskItem -Depth 100
Add-SPMTTask -JsonDefinition $jsonString -SharePointSourceCredential $onpremCredential
}
В файле spmt.json определены три задачи миграции.
{
"Tasks":[
{
"SourcePath":"http://On-prem/sites/test",
"TargetPath":"https://YourSPO.sharepoint.com",
"Items":{
"Lists":[
{
"SourceList":"list-01",
"TargetList":"list-01"
}
],
"SubSites":[
]
}
},
{
"SourcePath":"http://On-prem/sites/test",
"TargetPath":"https://YourSPO.sharepoint.com",
"Items":{
"Lists":[
{
"SourceList":"list-02",
"TargetList":"list-02"
}
],
"SubSites":[
]
}
},
{
"SourcePath":"http://On-prem/sites/test",
"TargetPath":"https://YourSPO.sharepoint.com",
"Items":{
"Lists":[
{
"SourceList":"doclib-01",
"TargetList":"doclib-01"
}
],
"SubSites":[
]
}
}
]
}
Пример 4. Отображение хода выполнения миграции
В этих примерах показано, как отобразить ход выполнения проекта миграции. Get-SPMTMigration возвращает объект текущего сеанса, в том числе состояние текущих задач и параметры уровня текущего сеанса. Состояние текущих задач включает в себя следующее:
- Количество отсканированных файлов.
- Количество отфильтрованных файлов.
- Количество перенесенных файлов.
- Количество неудачных файлов.
- Ход миграции текущей задачи (0 ~100).
- Текущее состояние задачи.
- Сообщения об ошибках миграции, если таковые имеются.
# Start migration in the background
Start-SPMTMigration -NoShow
# Get the object of current migration
$session = Get-SPMTMigration
# Query migration status every 5 seconds until migration is finished
while ($session.Status -ne "Finished")
{
Write-Host $session.Status
# Query migration progress of each tasks
Foreach ($taskStatus in $session.StatusOfTasks)
{
$taskStatus.MigratingProgressPercentage
}
Start-Sleep -Seconds 5
}