Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описаны командлеты PowerShell на основе модуля миграции средства миграции SharePoint (SPMT). Их можно использовать для перемещения файлов из локальных библиотек документов SharePoint Server, элементов списков и общих папок в Microsoft 365. Сведения обо всех текущих командлетах PowerShell, связанных с миграцией SharePoint, см. в справочнике по командлетам средства миграции Microsoft SharePoint.
Командлеты PowerShell имеют те же функциональные возможности, что и средство миграции SharePoint.
Примечание.
Эти командлеты PowerShell в настоящее время недоступны для пользователей Office 365, предоставляемого 21Vianet в Китае.
Требования к системе
Рекомендуемые характеристики для оптимальной производительности
| Описание | Рекомендация |
|---|---|
| ЦП | 64-разрядный 4-ядерный процессор или лучше |
| ОЗУ | 16 ГБ |
| Локальное хранилище | Жесткий диск: 150 ГБ свободного места |
| Операционная система | Windows Server 2025 Standard или DatacenterWindows Server 2022 Standard или DatacenterWindows Server 2019 Standard или Datacenter Windows Server 2016 Standard или Datacenter Windows Server 2012 R2 Standard или Datacenter Windows 10 или 11 клиент платформа .NET Framework 4.6.2 |
| Распространяемый компонент Microsoft Visual C++ 2015 | Требуется для переноса данных OneNote |
Важно!
Для поддержки переноса путей к файлам длиной до 400 символов требуются PowerShell 5.0x и платформа .NET Framework 4.6.2 или более поздней версии.
Минимальные требования (низкая производительность)
| Описание | Минимальное требование |
|---|---|
| ЦП | 64-разрядный двухъядерный процессор с частотой 1,4 ГГц (или более производительный) |
| ОЗУ | 8 ГБ |
| Локальное хранилище | Жесткий диск: 150 ГБ свободного места |
| Сетевая карта | Высокоскоростное подключение к Интернету |
| Операционная система | Windows Server 2008 R2 или 2012 Windows 7, 8 или 8.1 Платформа .NET Framework 4.6.2 |
| Распространяемый компонент Microsoft Visual C++ 2015 | Требуется для переноса данных OneNote. |
| PowerShell | PowerShell 5.x требуется для поддержки переноса путей к файлам длиной до 400 символов. PowerShell 6.0 или более поздней версии не поддерживается. |
Временное решение проблемы длинного пути
При использовании SPMT PowerShell могут возникать сбои сканирования исходных файлов с путями длиннее 260 символов. Чтобы устранить эту проблему, можно изменить системный реестр, чтобы разрешить PowerShell читать файлы с длинным путем.
Откройте редактор реестров, перейдите в "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework", добавьте новый ключ "AppContext". Затем добавьте 2 строковых значения под ключом.
Value Name:
Switch.System.IO.BlockLongPathsValue Data:falseValue Name:
Switch.System.IO.UseLegacyPathHandlingValue Data:false
Подготовка к работе
Подготовьте Microsoft 365 с помощью существующей версии Active Directory или с помощью одного из других вариантов добавления учетных записей в Microsoft 365. Дополнительные сведения см. в статьях "Интеграция Microsoft 365 с локальными средами" и "Добавление пользователей в приложения Microsoft 365 для бизнеса".
Откройте папку:
$env:UserProfile\Documents\WindowsPowerShell\Modules\Microsoft.SharePoint.MigrationTool.PowerShell. Убедитесь, что внутри него есть библиотеки DLL. Если вы используете OneDrive, вам нужно скопировать папку WindowsPowershell в$env:UserProfile\OneDrive - Microsoft\Documents.Из этого расположения запустите следующую команду PowerShell:
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
Создание и инициализация сеанса миграции
Этот командлет создает и инициализирует сеанс миграции. Инициализация настраивает параметры миграции на уровне сеанса. Если параметры настройки не определены, используются настройки по умолчанию. После регистрации сеанса можно добавить в него задачу и начать миграцию.
Добавление задачи миграции
Используйте этот командлет, чтобы добавить новую задачу миграции в зарегистрированный сеанс миграции. В настоящее время разрешены три типа задач: задача "Общий доступ к файлу", "Задача SharePoint" и задача, определенная в формате JSON.
Примечание. Дублирование задач не допускается.
Удаление задачи
Используйте этот командлет для удаления существующей задачи миграции из зарегистрированного сеанса миграции.
Начало миграции
Этот командлет запускает миграцию зарегистрированного средства миграции SPMT.
Возврат объекта текущего сеанса
Возвращает объект текущего сеанса. Этот командлет содержит состояние текущих задач и параметры текущего сеанса. Текущее состояние задачи включает:
- количество проверенных файлов;
- количество перенесенных файлов;
- возможные сообщения об ошибках миграции.
Остановка текущей миграции
Этот командлет отменяет текущую миграцию.
Отображение сведений о состоянии миграции в консоли
- Show-SPMTMigration
Если вы начинаете миграцию в режиме NoShow , при запуске командлета Show-SPMTMigration в консоли отображаются идентификатор задачи, расположение источника данных, расположение целевого объекта и состояние миграции. При нажатии клавиш CTRL+C экран возвращается в режим NoShow .
Удаление сеанса миграции
Используйте этот командлет для удаления сеанса миграции.
Примеры сценариев
Пример 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
}