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

