เปิดใช้งานคุณลักษณะบนไซต์ทั้งหมดใน SharePoint โดยใช้ PowerShell
ในบางสถานการณ์ คุณอาจต้องเปิดใช้งานฟีเจอร์สำหรับไซต์หรือไซต์คอลเลกชันทั้งหมดใน SharePoint ในกรณีของฉัน ฉันต้องเปิดใช้งานฟีเจอร์ "เปิดในไคลเอ็นต์" ของ SharePoint เพื่อปิดใช้งานการแก้ไขโดยใช้เบราว์เซอร์สำหรับไซต์คอลเลกชันทั้งหมดในแอปพลิเคชันเว็บ SharePoint โพสต์ในบล็อกนี้จะแสดงวิธีใช้ PowerShell เพื่อเปิดใช้งานฟีเจอร์บนไซต์ SharePoint ทั้งหมดในครั้งเดียว นี่เป็นเคล็ดลับที่มีประโยชน์มากหากคุณต้องการเปิดใช้งานคุณสมบัติทั่วทั้งฟาร์มของคุณ
จะเปิดใช้งานคุณลักษณะใน SharePoint ได้อย่างไร
หากต้องการเปิดใช้งานคุณลักษณะคอลเลกชันไซต์จาก SharePoint web UI คุณสามารถนำทางไปยังการตั้งค่าไซต์ >> คุณลักษณะไซต์คอลเลกชัน >> คลิกที่ "เปิดใช้งาน" ถัดจากคุณลักษณะที่เกี่ยวข้อง
ค่อนข้างง่ายพอผ่าน UI ใช่ไหม? หากคุณต้องทำเช่นเดียวกันกับไซต์คอลเลกชันหลายสิบรายการในเว็บแอปพลิเคชัน PowerShell เป็นโซลูชั่นที่สมบูรณ์แบบ
เปิดใช้งานคุณลักษณะสำหรับไซต์คอลเลกชันทั้งหมดใน SharePoint
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Configuration Parameters
$WebAppURL="https://portal.crescent.com/"
$FeatureName="OpenInClient" #Feature Folder Name
#Get all site collections of the web app and iterate through
$SiteColl= Get-SPSite -WebApplication $WebAppURL -Limit ALL
Foreach($Site in $SiteColl)
{
#Get the Feature ID from Feature Name
$Feature = Get-SPFeature -Site $Site.Url | Where {$_.DisplayName -eq $FeatureName}
#If Feature Found
if($Feature -ne $null)
{
#Check if the Feature is activated already
if (Get-SPFeature -Site $Site.Url | Where {$_.ID -eq $Feature.Id})
{
Write-Host $FeatureName "is already activated at " $Site.Url -f Yellow
}
else
{
#Activate the Feature
Enable-SPFeature -identity $Feature.ID -URL $Site.URL
Write-Host "Feature Activated on "$site.URL -f Green
}
}
else
{
Write-Host "Feature Name doesn't exist:"$FeatureName -f Red
}
}
สคริปต์ PowerShell นี้เปิดใช้งานฟีเจอร์นี้ในไซต์คอลเลกชันทั้งหมด
คุณยังสามารถใช้บรรทัดเดียวนี้เพื่อเปิดใช้งานฟีเจอร์บนคอลเลกชันไซต์ทั้งหมด: (อย่างไรก็ตาม ไม่มีการจัดการข้อผิดพลาด!)
Get-SPSite -Limit All | foreach {Enable-SPFeature "0561d315-d5db-4736-929e-26da142812c5" -url $_.URL }
SharePoint: เปิดใช้งานคุณลักษณะบนไซต์ทั้งหมด
พิจารณาสถานการณ์ที่คุณต้องเปิดใช้งานฟีเจอร์ระดับไซต์ (เว็บ) บนไซต์กว่า 100 แห่งภายใต้ไซต์คอลเลกชันซึ่งเป็นเรื่องปกติ ในกรณีของฉัน ฉันต้องเปิดใช้งานฟีเจอร์ Nintex Workflow 2013 บนไซต์ย่อยทั้งหมดภายในไซต์คอลเลกชันเฉพาะ
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Configuration Parameters
$SiteCollURL="https://portal.crescent.com/"
$FeatureID="0561d315-d5db-4736-929e-26da142812c5"
#Get the Feature
$Feature = Get-SPFeature | Where {$_.ID -eq $FeatureID}
#If Feature Found
if($Feature -ne $null)
{
#Get all sites under the collection and loop through
$Site= Get-SPSite $SiteCollURL
Foreach($Web in $Site.AllWebs)
{
#Check if the Feature is activated already
if (Get-SPFeature -Web $web.Url | Where {$_.ID -eq $FeatureId})
{
Write-Host $FeatureID "is already activated at " $Web.Url -f "Blue"
}
else
{
#Activate the Feature
Enable-SPFeature -identity $FeatureID -URL $Web.URL
Write-Host "Feature has been Activated on "$Web.URL -f "Green"
}
}
}
else
{
Write-Host "Feature doesn't exist:"$FeatureID -f "Red"
}
สคริปต์นี้เปิดใช้งานคุณลักษณะสำหรับไซต์ทั้งหมดใน SharePoint
