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

SharePoint Online: จะอนุมัติเอกสารหลายฉบับโดยใช้ PowerShell ได้อย่างไร


ข้อกำหนด: อนุมัติเอกสารหลายฉบับใน SharePoint Online โดยใช้ PowerShell

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

จะอนุมัติหลายรายการใน SharePoint Online ได้อย่างไร

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

การอนุมัติเอกสารใน SharePoint Online อาจเป็นกระบวนการที่ใช้เวลานาน โดยเฉพาะอย่างยิ่งเมื่อคุณมีเอกสารจำนวนมากที่ต้องตรวจทาน โชคดีที่ SharePoint มีวิธีอนุมัติเอกสารหลายฉบับพร้อมกัน โดยใช้ฟีเจอร์การอนุมัติจำนวนมาก

หากต้องการอนุมัติหลายรายการ คุณสามารถเลือกได้มากกว่าหนึ่งรายการและคลิกที่ปุ่ม "อนุมัติ/ปฏิเสธ" จากแถบคำสั่งหรือจากเมนูบริบท!

อนุมัติเอกสาร SharePoint Online โดยใช้ PowerShell:

มาอนุมัติไฟล์เดียวใน SharePoint Online โดยใช้ PowerShell:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
  
#Parameters
$SiteURL = "https://Crescent.sharepoint.com"
$FileRelativeURL ="/Shared Documents/Compliance Process.xlsx"
$ApprovalComments= "Approved by the Admin"

#Get credentials to connect
$Cred = Get-Credential

#Setup the Context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName, $Cred.Password)
 
#Get the File and Approve
$File = $Ctx.Web.GetFileByServerRelativeUrl($FileRelativeURL)
$File.Approve($ApprovalComments)
$Ctx.ExecuteQuery()
 
Write-Host -f Green "File Approved Successfully!"

ในทำนองเดียวกัน หากต้องการปฏิเสธไฟล์ ให้ใช้: $File.Deny($Comment) เราสามารถใช้สคริปต์ PowerShell เพื่ออนุมัติหลายรายการใน SharePoint Online

SharePoint Online: อนุมัติเอกสารหลายฉบับโดยใช้ PowerShell

มาอนุมัติรายการที่ค้างอยู่ทั้งหมดในรายการหรือไลบรารีเอกสารโดยใช้ PowerShell:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
  
#Parameters
$SiteURL = "https://Crescent.sharepoint.com"
$ListName ="Documents"

#Get credentials to connect
$Cred = Get-Credential

#Setup the Context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName, $Cred.Password)
 
#Get the File and Approve
$List = $Ctx.web.Lists.GetByTitle($ListName)

#Query to get all items with status other than "Approved"
$Query = New-Object Microsoft.SharePoint.Client.CamlQuery
$Query.ViewXml = "<View Scope = 'RecursiveAll'><Query><Where><Neq><FieldRef Name='_ModerationStatus' /><Value Type='ModStat'>0</Value></Neq></Where></Query></View>"
$ListItems = $List.GetItems($Query)
$Ctx.Load($ListItems)
$Ctx.ExecuteQuery()

#Approve all pending List Items
ForEach($Item in $ListItems)
{
    $Item["_ModerationStatus"] = 0
    $Item.Update()
    $Ctx.ExecuteQuery()
    Write-host -f Green "Approved List Item:" $Item.Id
} 

PnP PowerShell เพื่ออนุมัติไฟล์ทั้งหมดในไลบรารีเอกสาร

เมื่อต้องการอนุมัติไฟล์ทั้งหมดในไลบรารีเอกสาร SharePoint Online ให้ใช้สคริปต์ PowerShell นี้:


#Parameters
$SiteURL = "https://Crescent.sharepoint.com/sites/marketing"
$ListName = "Branding"

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

#Get All Files in Draft State
$DraftItems = Get-PnPListItem -List $ListName -PageSize 2000 | Where {$_.FileSystemObjectType -eq "File" -and  $_["_ModerationStatus"] -ne 0}

#Approve Files
$DraftItems | ForEach-Object { 
    Set-PnPListItem -List $ListName -Identity $_ -Values @{"_ModerationStatus"=0;"_ModerationComments"="Approved by Script"} | Out-Null
    Write-host "Approved File:"$_.FieldValues.FileRef
}

ที่นี่ ฟิลด์สถานะการดูแลมีการแจงนับเหล่านี้:

  • อนุมัติ: 0
  • ถูกปฏิเสธ: 1
  • รอดำเนินการ: 2
  • ร่าง: 3
  • กำหนดการ: 4

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