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

เปิดใช้งานคุณลักษณะบนไซต์ทั้งหมดใน 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

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