คัดลอกรายการ Sharepoint ไปยังรายการอื่นด้วย Powershell และ PnP
คุณสามารถคัดลอกรายการ Sharepoint ไปยังรายการอื่นได้อย่างง่ายดายด้วย Powershell และ PnP
ขั้นแรก ให้เชื่อมต่อกับไซต์ Sharepoint ต้นทางด้วย PnP-Online:
#Create credential object
$cred = Get-Credential
#Import the Skype for Business Online PS session
Connect-PnPOnline -url $siteUrl -Credentials $credรับรายการ
ตอนนี้เราต้องเรียกค้นรายการที่เราต้องการคัดลอก:
# Get source list items
$listItems = Get-PnPListItem -List 'ListName' -Fields "Project","Title","Description","Address"คัดลอกรายการไปยังรายการปลายทาง
ถึงเวลาคัดลอกข้อมูลแล้ว ขั้นแรก ให้เชื่อมต่อกับไซต์ปลายทาง (หากรายการอยู่ที่ไซต์ Sharepoint อื่น)
#Connect to destination site using the connector script
Connect-PnPOnline -url 'http://conto.sharepoint.com/site'
foreach($item in $listItems) {
#Create object
$itemVal = @{
'ProjectName' = $item['ProjectName']
'Title' = $item['Title']
'Desciption' = $item['Desciption']
'Address' = $item['Address']
}
Add-PnPListItem -List 'newlist' -Values $itemVal -ContentType "Item"
}
บันทึกสำคัญบางประการ (ฉันใช้เวลาสองสามชั่วโมงในการคิด)
ใน Sharepoint คอลัมน์รายการสามารถมีชื่อภายในที่แตกต่างจากที่คุณเห็นเมื่อเปิด Sharepoint หากต้องการรับชื่อรายการที่มีอยู่ทั้งหมด ให้เรียกใช้ cmdlet ต่อไปนี้
# Get all the lists from the connected Sharepoint site
Get-pnplist
# Show fields from the selected list
Get-pnpfield -list 'listname'
หากคอลัมน์ใดคอลัมน์หนึ่งในรายการมีไฮเปอร์ลิงก์ คุณจะได้รับเนื้อหาจากคอลัมน์นั้นด้วย:
$url = $item['HyperlinkFieldName'].url
$desc = $item['HyperlinkFieldName'].description
$itemVal = @{
'NewLinkField' = "$url, $desc"
'Title' = $item['Title']
}