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

วิธีส่งออกผลการค้นหาใน SharePoint Online โดยใช้ PowerShell


ความต้องการ: เรียกใช้คำค้นหาและส่งออกผลลัพธ์การค้นหาเป็น CSV ใน SharePoint Online โดยใช้ PowerShell

จะค้นหา SharePoint Online โดยใช้ PowerShell ได้อย่างไร

PowerShell เป็นวิธีที่ยอดเยี่ยมในการทำให้งานใน SharePoint Online เป็นแบบอัตโนมัติ ด้วย PowerShell คุณสามารถค้นหาข้อมูลที่คุณต้องการจากสภาพแวดล้อม SharePoint Online ของคุณได้อย่างรวดเร็ว ในบางครั้ง คุณอาจต้องส่งออกผลการค้นหาเพื่อการวิเคราะห์เพิ่มเติมหรือนำไปใช้ในแอปพลิเคชันอื่นๆ ในโพสต์บนบล็อกนี้ เราจะแสดงวิธีใช้ PowerShell เพื่อค้นหาเนื้อหาใน SharePoint Online และส่งออกผลลัพธ์การค้นหาเป็น CSV

การใช้แบบสอบถามคำหลักเพื่อดำเนินการค้นหาและส่งออกผลลัพธ์ไปยัง CSV ด้วย CSOM ได้อธิบายไว้ในโพสต์อื่นของฉัน: วิธีค้นหา SharePoint Online โดยใช้ PowerShell-Keyword Query ตอนนี้ฉันต้องได้รับ ID รายการรายการของรายการล่าสุดที่สร้างใน SharePoint รายการออนไลน์:


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/DocHub"
$ListURL= "https://crescent.sharepoint.com/sites/DocHub/Documents"
$SearchQuery = "Path:" + $ListURL
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Perform Search     
$SearchResults = Submit-PnPSearchQuery -Query $SearchQuery -All -SelectProperties ListItemID -SortList @{Created="Descending"}
 
#Get the Last Created Item's ID
Write-host "The Latest Item ID is:" $SearchResults.ResultRows[0]["ListItemID"]

คุณอาจมีไฟล์ที่มีชื่อเฉพาะที่ใดก็ได้บนไซต์ SharePoint ของคุณ ใช้ “ชื่อไฟล์:something.docx” เป็นคำค้นหาเพื่อรับไฟล์ทั้งหมดที่มีชื่อเฉพาะ

PnP PowerShell เพื่อค้นหาไซต์ SharePoint Online

นี่คือ PnP PowerShell เพื่อค้นหาเนื้อหาในไซต์ SharePoint Online ของคุณ:


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/DocHub"
$SearchQuery = "Title:document* Path:" + $SiteURL

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Run Search Query     
$SearchResults = Submit-PnPSearchQuery -Query $SearchQuery -All

$Results = @()
foreach($ResultRow in $SearchResults.ResultRows)  
{  
    #Get All Properties from search results
    $Result = New-Object PSObject  
    $ResultRow.GetEnumerator()| ForEach-Object { $Result | Add-Member Noteproperty $_.Key $_.Value}  
    $Results+=$Result
}
$Results

หากต้องการรับคุณสมบัติที่มีอยู่ทั้งหมดของผลการค้นหา ให้ใช้: $SearchResults.ResultRows[0] ที่จะรับคุณสมบัติทั้งหมดของผลการค้นหา:

  • ผู้เขียน
  • สถานะการยุบ
  • คลาสเนื้อหา
  • ContentTypeId
  • วัฒนธรรม
  • ลิงก์ในรายละเอียด
  • คำอธิบาย
  • DisplayAuthor
  • โดคาคเมตา
  • รหัสเอกสาร
  • บรรณาธิการOWSUSER
  • นามสกุลไฟล์
  • ประเภทไฟล์
  • แหล่งที่มาทางภูมิศาสตร์
  • HitHighlightedProperties
  • Hitไฮไลท์สรุป
  • ความสำคัญ
  • IndexDocId
  • IsContainer
  • เป็นเอกสาร
  • เป็นเนื้อหาภายนอก
  • เวลาแก้ไขล่าสุด
  • การเชื่อมโยงUrl
  • เส้นทางดั้งเดิม
  • ParentLink
  • หมายเลขพาร์ติชัน
  • เส้นทาง
  • รูปภาพขนาดย่อURL
  • piSearchResultId
  • ProgId
  • รหัสเทมเพลตการแสดงผล
  • ResultTypeId
  • ResultTypeIdList
  • นามสกุลไฟล์รอง
  • ดัชนีส่วน
  • ชื่อส่วน
  • ServerRedirectedEmbedURL
  • ServerRedirectedPreviewURL
  • URL ที่เปลี่ยนเส้นทางเซิร์ฟเวอร์
  • คำอธิบายเว็บไซต์
  • รหัสไซต์
  • โลโก้ไซต์
  • ชื่อไซต์
  • ขนาด
  • SPWebUrl
  • ชื่อ
  • ID ไม่ซ้ำกัน
  • UrlZone
  • ViewsLifeTime
  • การดูล่าสุด
  • WebId
  • Webแม่แบบ
  • รหัสงาน
  • เขียน

ค้นหาไซต์ SharePoint Online และส่งออกผลลัพธ์เป็นไฟล์ CSV

มาค้นหาไฟล์ Excel ทั้งหมดจากไซต์ SharePoint Online และส่งออกผลลัพธ์การค้นหาเป็นไฟล์ CSV


#Parameters
$SiteUrl = "https://crescent.sharepoint.com/sites/Marketing"
$SearchQuery = "*.xlsx Path:" + $SiteURL
$CSVFile = "C:\Temp\ExcelFiles.csv"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteUrl -Interactive

#Execute Search 
$SearchResults = Submit-PnPSearchQuery -Query $SearchQuery -All -TrimDuplicates $False -SelectProperties Filename, Author, Size, ListItemID, LastModifiedTime

#Collect Data from search results
$Results = @()
ForEach ($ResultRow in $SearchResults.ResultRows) 
{     
    $Results += [pscustomobject] @{
        Filename   = $ResultRow["Filename"]
        Author = $ResultRow["Author"]
        Size = $ResultRow["Size"]
        LastModified = $ResultRow["LastModifiedTime"]
        ListItemID     = $ResultRow["ListItemID"]
        ParentFolder = $ResultRow["ParentLink"]
        URL       = $ResultRow["Path"]
    } 
}
$Results
#Export results to CSV
$Results | Export-Csv -Path $CSVFile -NoTypeInformation

สคริปต์นี้จะค้นหาคำค้นหาที่กำหนดและส่งออกผลการค้นหาเป็นไฟล์ CSV

โปรดทราบว่าแนวทางนี้จะค้นหาไฟล์จากการค้นหาที่จัดทำดัชนีไว้ แต่ตารางการจัดทำดัชนีอาจมีความล่าช้า ดัชนีอาจไม่ใช่แบบเรียลไทม์ นี่คือข้อมูลอ้างอิงใน Submit-PnPSearchQuery

โดยสรุป ด้วยการทำตามขั้นตอนที่อธิบายไว้ในบทความนี้ คุณสามารถค้นหาและส่งออกผลลัพธ์การค้นหาใน SharePoint Online โดยใช้ PowerShell นี่เป็นวิธีที่สะดวกและเป็นอัตโนมัติสำหรับผู้ดูแลระบบในการค้นหาข้อมูลที่ต้องการอย่างรวดเร็วและดำเนินการกับข้อมูลนั้น ไม่ว่าคุณจะต้องการส่งออกข้อมูลเพื่อการรายงาน การวิเคราะห์ หรือการสำรองข้อมูล การใช้ PowerShell เพื่อค้นหาและส่งออกผลลัพธ์การค้นหาใน SharePoint Online เป็นโซลูชันที่สะดวกและมีประสิทธิภาพ

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