Introduction

While moving the configuration lists from Dev/SIT to UAT/Prod, moving the list data is kind of a problem, which we can automate, using PnP-Powershell script.

Please follow the steps given below.
Step 1

Connect to Source and Destination tenant.
#Pass the UserID and Password to connect the source and destination SharePoint O365 sites.

Source
  1. $username = "userid1"
  2. $userPassword = "password1"
  3. $secpasswd = ConvertTo-SecureString $userPassword -AsPlainText -Force
  4. $mycreds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $secpasswd
Destination
  1. $username1 = "userid2"
  2. $userPassword1 = "passw0rd2"
  3. $secpasswd1 = ConvertTo-SecureString $userPassword1 -AsPlainText -Force
  4. $mycreds1 = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username1, $secpasswd1
Step 2

Read the list data from the source list and write it in the destination list.
Get the Souce context
  1. $webUrl1 = "https://tenant2.sharepoint.com/saurabh/"
  2. Write-Output $("Connecting to {0}..." -f $webUrl);
  3. Connect-PnPOnline -Url $webUrl -Credentials $mycreds;
  4. Write-Output "Context obtained";
Function to read the data from source list and write it in the destination list
  1. function GetSetListItems() {#
  2. Input Parameters
  3. $listName = "Configuration List"
  4. $fields = "Title", "Color_x0020_Code"#
  5. Retrieves items
  6. $listItems = Get - PnPListItem - List $listName - Fields $fields# Write lists item to other list
  7. Connect - PnPOnline - Url $webUrl1 - Credentials $mycreds1;
  8. foreach($listItem in $listItems) {
  9. $itemValues = @ {
  10. "Title" = $listItem["Title"];
  11. "Color_x0020_Code" = $listItem["Color_x0020_Code"]
  12. }
  13. Add - PnPListItem - List $listName - Values $itemValues
  14. }
  15. }
I hope, this will solve the problem of migrating the lists data from one tenant to other tenant. You can also copy the list data on same tenant.