In this article we will see how to copy list items from one list to another using PNP PowerShell:
In the below code, just replace the source site url and destination site url. Also, update the columns internal names. I have used -UseWebLogin to login to sites using a web browser, you can also pass credentials manually as shown at the bottom of post.
Connect-PnPOnline -Url "https://office365notes.sharepoint.com/sites/SourceSite" -UseWebLogin
$listName = "AssetTypeMaster"
$fields = "AssetType", "Description", "AseetTypeDescription"
$listItems = Get-PnPListItem -List $listName -Fields $fields # Write lists item to other list
Connect-PnPOnline -Url "https://office365notes.sharepoint.com/sites/DestinationSite" -UseWebLogin
foreach($listItem in $listItems) {
$itemValues = @{
"AssetType" = $listItem["AssetType"];
"Description" = $listItem["Description"];
"AseetTypeDescription" = $listItem["AseetTypeDescription"]
}
Add-PnPListItem -List $listName -Values $itemValues
}
You can use credentials as well as shown below:
Source:
$username = "userid1" $userPassword = "password1" $secpasswd = ConvertTo-SecureString $userPassword -AsPlainText -Force $mycreds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $secpasswd
Destination:
$username1 = "userid2" $userPassword1 = "passw0rd2" $secpasswd1 = ConvertTo-SecureString $userPassword1 -AsPlainText -Force $mycreds1 = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username1, $secpasswd1Powershell using passing credentials:
$sourceWebUrl = "https://office365notes.sharepoint.com/sites/SourceSite"
$destinationWebUrl = "https://office365notes.sharepoint.com/sites/DestinationSite"
#Connect to source site
Connect-PnPOnline -Url $sourceWebUrl -Credentials $mycreds;
$listName = "AssetTypeMaster"
$fields = "AssetType", "Description", "AseetTypeDescription"
#Retrieves items
$listItems = Get-PnPListItem -List $listName -Fields $fields
#Write lists item to other list
#Connect to destination site
Connect-PnPOnline -Url $destinationWebUrl -Credentials $mycreds1;
foreach($listItem in $listItems) {
$itemValues = @{
"AssetType" = $listItem["AssetType"];
"Description" = $listItem["Description"];
"AseetTypeDescription" = $listItem["AseetTypeDescription"]
}
Add-PnPListItem -List $listName -Values $itemValues
}

0 Comments