ค้นหาเว็บไซต์

คัดลอกรายการ 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']
}

บทความที่เกี่ยวข้อง