Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo é sobre cmdlets do PowerShell baseados no mecanismo de migração da SPMT (Ferramenta de Migração do SharePoint). Eles podem ser usados para mover arquivos de bibliotecas de documentos locais do Servidor do SharePoint 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 cmdlets 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
Esses cmdlets do PowerShell não estão disponíveis atualmente para usuários do Office 365 operado pela 21Vianet na China.
Requisitos do sistema
Requisitos recomendados para obter o melhor desempenho
| Descrição | Recomendação |
|---|---|
| CPU | Processador de 4 núcleos de 64 bits ou superior |
| RAM | 16 GB |
| Armazenamento local | Disco rígido: 150 GB de espaço livre |
| Sistema operacional | Windows Server 2025 Standard ou Datacenter Windows Server 2022 Standard ou Datacenter Windows Server 2019 Standard ou Datacenter Windows Server 2016 Standard ou Datacenter Windows Server 2012 R2 Standard ou Datacenter Windows 10 ou 11 cliente .NET Framework 4.6.2 |
| Microsoft Visual C++ 2015 Redistribuível | Necessário para migração do OneNote |
Importante
O PowerShell 5.0x e o .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 ou 2012 Windows 7, 8 ou 8.1 .NET Framework 4.6.2 |
| Microsoft Visual C++ 2015 Redistribuível | Necessário para migração do OneNote. |
| PowerShell | 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. |
Solução alternativa para um problema de caminho longo
Ao usar o SPMT PowerShell, você pode encontrar falhas de verificação em arquivos de origem com caminhos maiores que 260 caracteres. Para resolver esse problema, você pode modificar o registro do sistema para permitir que o PowerShell leia arquivos de caminho longo.
Abra o Editor de Registro, navegue até "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework", adicione uma nova chave "AppContext". Em seguida, adicione 2 valores de cadeia de caracteres sob a chave.
Nome do valor:
Switch.System.IO.BlockLongPathsDados do valor:falseNome do valor:
Switch.System.IO.UseLegacyPathHandlingDados do valor:false
Antes de começar
Provisione seu Microsoft 365 com o Active Directory existente ou uma das outras opções para adicionar contas ao Microsoft 365. Para obter mais informações, consulte Integração do Microsoft 365 com ambientes locais e Adicionar usuários ao Microsoft 365 Apps para Pequenos e Médios negócios.
Abra a pasta:
$env:UserProfile\Documents\WindowsPowerShell\Modules\Microsoft.SharePoint.MigrationTool.PowerShell. Verifique se você tem DLLs dentro dele. Se você estiver usando o OneDrive, precisará copiar a pasta WindowsPowershell para$env:UserProfile\OneDrive - Microsoft\Documentso .Nesse local, execute o seguinte comando do PowerShell:
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
Criar e iniciar uma sessão de migração
Este cmdlet cria e, em seguida, inicializa uma sessão de migração. A inicialização define 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 é registrada, você pode adicionar uma tarefa à sessão e iniciar a migração.
Adicionar uma tarefa de migração
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
Use este cmdlet para remover uma tarefa de migração existente da migração registrada.
Iniciar a migração
Esse cmdlet inicia a migração do SPMT registrada.
Retornar o objeto de sessão atual
Retorna o objeto da sessão atual. Este cmdlet inclui o status das tarefas atuais e as configurações de nível de sessão atual. O status atual da tarefa inclui:
- Contagem de arquivos examinados
- Contagem de arquivos migrados
- Todas as mensagens de erro de migração
Interromper a migração atual
Este cmdlet cancela 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 o status da migração no console. Selecionar Ctrl+C retorna a exibição para o modo NoShow .
Remover a sessão de migração
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 plano de fundo "Modo NoShow" para o primeiro plano e executar o seguinte cmdlet para que o progresso da migração seja mostrado no console.
Show-SPMTMigration
Exemplo 3: O 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; ele inclui tarefas atuais, status e configurações de nível de sessão atual.
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).
- O status atual da tarefa.
- 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
}