Migrar para o SharePoint usando o PowerShell
Este artigo é sobre os novos cmdlets do PowerShell com base no mecanismo de migração do SPMT (Ferramenta de Migração do SharePoint). Eles podem ser usados para mover arquivos do SharePoint 2010 e do SharePoint 2013, bibliotecas de documentos locais e itens de lista e compartilhamentos de arquivos para o Microsoft 365. Para obter informações sobre todos os cmdlets atuais do PowerShell relacionados à migração do SharePoint, consulte a referência de cmdlet da Ferramenta de Migração do Microsoft SharePoint.
Os cmdlets do PowerShell fornecem as mesmas funcionalidades que a Ferramenta de Migração do SharePoint.
Observação
Atualmente, esses cmdlets do PowerShell não estão disponíveis para usuários do Office 365 operados pela 21Vianet na China.
Requisitos do sistema
Requisitos recomendados para melhor desempenho*
Descrição | Recomendação |
---|---|
CPU | Processador Quad core de 64 bits ou superior |
RAM | 16 GB |
Armazenamento local | Disco rígido: 150 GB de espaço livre |
Sistema operacional | Windows Server 2016 Standard ou Datacenter Windows Server 2012 R2 Cliente do Windows 10 .NET Framework 4.6.2 |
Microsoft Visual C++ 2015 Redistribuível | Necessário para migração do OneNote |
Importante
O PowerShell 5.0x e .NET Framework 4.6.2 ou superior são necessários para dar suporte à migração de caminhos de arquivo de até 400 caracteres.
Requisitos mínimos (esperar um baixo desempenho)
Descrição | Requisitos mínimos |
---|---|
CPU | Processador de 2 núcleos 1.4 GHz de 64 bits ou superior |
RAM | 8 GB |
Armazenamento local | Disco rígido: 150 GB de espaço livre |
Placa de rede | Conexão com a Internet de alta velocidade |
Sistema operacional | Windows Server 2008 R2 Windows 7 Windows 8 ou 8.1 .NET Framework 4.6.2 |
Microsoft Visual C++ 2015 Redistribuível | Necessário para migração do OneNote. |
PowerShell | O PowerShell 5.x necessário para dar suporte à migração de caminhos de arquivo de até 400 caracteres. Não há suporte para o PowerShell 6.0 ou superior. |
Antes de começar
Provisione seu Microsoft 365 com seu diretório ativo existente ou uma das outras opções para adicionar contas ao Microsoft 365. Consulte Integração do Microsoft 365 com ambientes locais e Adicionar usuários a Microsoft 365 Apps para Pequenos e Médios negócios para obter mais informações.
Abra a pasta:
$env:UserProfile\Documents\WindowsPowerShell\Modules\Microsoft.SharePoint.MigrationTool.PowerShell
Certifique-se de ter DLLs dentro dele. Se estiver usando o OneDrive, pode ser necessário copiar a pasta WindowsPowershell para o OneDrive / Documentos.
Deste local, execute o seguinte comando do PowerShell
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
Criar e iniciar uma sessão de migração
- Register-SPMTMigration
Esse cmdlet cria e inicializa uma sessão de migração. A inicialização configura as configurações de migração no nível da sessão. Se nenhum parâmetro de configuração específico for definido, as configurações padrão serão usadas. Depois que uma sessão for registrada, você pode adicionar uma tarefa à sessão e iniciar a migração.
Adicionar uma tarefa de migração
- Add-SPMTTask
Use este cmdlet para adicionar uma nova tarefa de migração à sessão de migração registrada. Atualmente, há três tipos diferentes de tarefas permitidas: tarefa de compartilhamento de arquivos, tarefa do SharePoint e tarefa definida por JSON. Observação: tarefas duplicadas não são permitidas.
Remover uma tarefa
- Remove-SPMTTask
Use este cmdlet para remover uma tarefa de migração existente da migração registrada.
Iniciar a migração
- Start-SPMTMigration
Este cmdlet iniciará a migração SPMT registrada.
Retornar o objeto de sessão atual
- Get-SPMTMigration
Retorne o objeto da sessão atual. Esse cmdlet inclui o status de tarefas atuais e as configurações atuais do nível da sessão. O status de tarefas atual inclui:- Contagem de arquivos examinados
- Contagem de arquivos migrados
- Todas as mensagens de erro de migração
Interromper a migração atual
- Stop-SPMTMigration
Este cmdlet cancelará a migração atual.
Mostrar detalhes de status da migração no console
- Show-SPMTMigration
Se você iniciar a migração no modo NoShow, a execução do cmdlet Show-SPMTMigration exibirá a ID da tarefa, o local da fonte de dados, o local de destino e a migração status no console. Pressionar Ctrl+C retornará ao modo NoShow .
Remover a sessão de migração
- Unregister-SPMTMigration
Use este cmdlet para excluir a sessão de migração.
Cenários de exemplo
Exemplo 1: O administrador de TI adiciona uma tarefa local do SharePoint e inicia a migração em segundo plano.
#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
Exemplo 2: o administrador de TI deseja trazer a migração do "modo NoShow" de tela de fundo para o primeiro plano e executar abaixo do cmdlet para que o andamento da migração seja mostrado no console.
Show-SPMTMigration
Exemplo 3: A Administração de TI deseja fazer uma migração em massa carregando um arquivo .csv. O arquivo de amostra neste exemplo é 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
}
Duas tarefas de migração são definidas no arquivo 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
Snippets de código para migração em massa carregando um arquivo 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
}
Três tarefas de migração são definidas no arquivo 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":[
]
}
}
]
}
Exemplo 4: exibir o progresso da migração
Esses exemplos mostram como exibir o andamento do seu projeto de migração. Get-SPMTMigration retorna o objeto da sessão atual. Inclui o status das tarefas atuais e as configurações atuais do nível da sessão. O status das tarefas atuais inclui:
- Uma contagem de arquivos verificados.
- Uma contagem de arquivos filtrados.
- Uma contagem de arquivos migrados.
- Uma contagem de arquivos com falha.
- O progresso da migração da tarefa atual (0 ~ 100).
- A tarefa atual status.
- Mensagens de erro de migração, se houver alguma.
# 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
}