Eseguire la migrazione a SharePoint con PowerShell
Questo articolo descrive i nuovi cmdlet di PowerShell basati sul motore di migrazione dello strumento di migrazione di SharePoint (SPMT). Possono essere usati per spostare i file dalle raccolte documenti e dagli elementi di elenco locali di SharePoint 2010 e SharePoint 2013 e dalle condivisioni file a Microsoft 365. Per informazioni su tutti i cmdlet di PowerShell correnti relativi alla migrazione di SharePoint, vedere le informazioni di riferimento sui cmdlet dello strumento di migrazione di Microsoft SharePoint.
I cmdlet di PowerShell offrono le stesse funzionalità dello Strumento di migrazione di SharePoint.
Nota
Questi cmdlet di PowerShell non sono attualmente disponibili per gli utenti di Office 365 gestiti da 21Vianet in Cina.
Requisiti di sistema
Requisiti consigliati per prestazioni ottimali*
Descrizione | Consiglio |
---|---|
CPU | Processore Quad core a 64 bit o superiore |
RAM | 16 GB |
Risorsa di archiviazione locale | Disco rigido: 150 GB di spazio libero |
Sistema operativo | Windows Server 2016 Standard o Datacenter Windows Server 2012 R2 Windows 10 Client .NET Framework 4.6.2 |
Microsoft Visual C++ 2015 Redistributable | Obbligatorio per la migrazione di OneNote |
Importante
PowerShell 5.0x e .NET Framework 4.6.2 o versione successiva sono necessari per supportare la migrazione di percorsi di file fino a 400 caratteri.
Requisiti minimi (possibile rallentamento delle prestazioni)
Descrizione | Requisito minimo |
---|---|
CPU | Processore dual core 1.4 GHz a 64 bit o superiore |
RAM | 8 GB |
Risorsa di archiviazione locale | Disco rigido: 150 GB di spazio libero |
Schede di rete | Connessione Internet ad alta velocità |
Sistema operativo | Windows Server 2008 R2 Windows 7 Windows 8 o 8.1 .NET Framework 4.6.2 |
Microsoft Visual C++ 2015 Redistributable | Obbligatorio per la migrazione di OneNote. |
PowerShell | PowerShell 5.x necessario per supportare la migrazione di percorsi di file fino a 400 caratteri. PowerShell 6.0 o versione successiva non è supportato. |
Prima di iniziare
Effettuare il provisioning di Microsoft 365 con l'active directory esistente o una delle altre opzioni per l'aggiunta di account a Microsoft 365. Per altre informazioni, vedere Integrazione di Microsoft 365 con ambienti locali e Aggiungere utenti a Microsoft 365 Apps for business.
Aprire la cartella:
$env:UserProfile\Documents\WindowsPowerShell\Modules\Microsoft.SharePoint.MigrationTool.PowerShell
Controllare di avere DLLs al suo interno; se si usa OneDrive, è possibile che sia necessario copiare la cartella WindowsPowershell in OneDrive/Documents.
Da questa posizione, eseguire il comando di PowerShell seguente:
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
Creare e inizializzare una sessione di migrazione
- Register-SPMTMigration
Questo cmdlet crea e quindi inizializza una sessione di migrazione. L'inizializzazione configura le impostazioni di migrazione a livello di sessione. Se non sono definiti parametri di impostazione specifici, verranno usate le impostazioni predefinite. Dopo aver registrato una sessione, è possibile aggiungere un'attività alla sessione e avviare la migrazione.
Aggiungere un'attività di migrazione
- Add-SPMTTask
Usare questo cmdlet per aggiungere una nuova attività di migrazione alla sessione di migrazione registrata. Attualmente sono consentiti tre diversi tipi di attività: attività di condivisione file, attività di SharePoint e attività definita JSON. Nota: le attività duplicate non sono consentite.
Rimuovere un'attività
- Remove-SPMTTask
Questo cmdlet consente di rimuovere un'attività di migrazione esistente dalla migrazione registrata.
Avviare la migrazione
- Start-SPMTMigration
Questo cmdlet consente di avviare la migrazione tramite SPMT registrata.
Restituire l'oggetto della sessione corrente
- Get-SPMTMigration
Restituisce l'oggetto della sessione corrente. Questo cmdlet include lo stato delle attività correnti e le impostazioni correnti a livello di sessione. Lo stato corrente dell'attività include:- Numero di file analizzati
- Numero di file migrati
- Qualsiasi messaggio di errore di migrazione
Interrompere la migrazione corrente
- Stop-SPMTMigration
Questo cmdlet consente di annullare la migrazione corrente.
Visualizzare i dettagli dello stato della migrazione nella console
- Show-SPMTMigration
Se si avvia la migrazione in modalità NoShow , l'esecuzione del cmdlet Show-SPMTMigration visualizzerà l'ID attività, la posizione dell'origine dati, il percorso di destinazione e lo stato della migrazione nella console. Premendo CTRL+C si tornerà alla modalità NoShow .
Rimuovere la sessione di migrazione
- Unregister-SPMTMigration
Utilizzare questo cmdlet per eliminare la sessione di migrazione.
Scenari di esempio
Esempio 1: L'amministratore IT aggiunge un'attività locale di SharePoint e avvia la migrazione in background.
#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
Esempio 2: l'amministratore IT decide di portare in primo piano la migrazione dalla modalità "NoShow" in background ed esegue il cmdlet in modo da visualizzare l'avanzamento della migrazione nella console.
Show-SPMTMigration
Esempio 3: Il Amministrazione IT vuole eseguire una migrazione in blocco caricando un file .csv. Il file di esempio in questo caso è 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
}
Sono definite due attività di migrazione nel file 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
Frammenti di codice per la migrazione in blocco caricando un file 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
}
Sono definite tre attività di migrazione nel file 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":[
]
}
}
]
}
Esempio 4: visualizzare lo stato della migrazione
Questi esempi mostrano come visualizzare lo stato del progetto di migrazione. Get-SPMTMigration restituisce l'oggetto della sessione corrente. Include lo stato delle attività correnti e le impostazioni a livello di sessione corrente. Lo stato delle attività correnti include:
- Numero di file analizzati.
- Numero di file filtrati.
- Numero di file migrati.
- Numero di file non riusciti.
- Stato della migrazione dell'attività corrente (0 ~ 100).
- Stato dell'attività corrente.
- Messaggi di errore di migrazione, se presenti.
# 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
}