Website-Suche

Aktivieren Sie die Funktion auf allen Websites in SharePoint mithilfe von PowerShell


In einigen Szenarien müssen Sie möglicherweise eine Funktion für alle Websites oder Websitesammlungen in SharePoint aktivieren. In meinem Fall musste ich die Funktion „Im Client öffnen“ von SharePoint aktivieren, um die browserbasierte Bearbeitung für alle Websitesammlungen in einer SharePoint-Webanwendung zu deaktivieren. In diesem Blogbeitrag erfahren Sie, wie Sie mit PowerShell eine Funktion auf allen SharePoint-Websites gleichzeitig aktivieren. Dies ist ein sehr praktischer Trick, wenn Sie eine Funktion in Ihrer gesamten Farm aktivieren möchten.

Wie aktiviere ich eine Funktion in SharePoint?

Um eine Websitesammlungsfunktion über die SharePoint-Webbenutzeroberfläche zu aktivieren, können Sie zu Websiteeinstellungen >> Websitesammlungsfunktionen navigieren >> Klicken Sie neben der entsprechenden Funktion auf „Aktivieren“.

Ziemlich einfach über die Benutzeroberfläche, nicht wahr? Nun, wenn Sie dasselbe für Dutzende von Websitesammlungen in der Webanwendung tun müssen, ist PowerShell die perfekte Lösung.

Funktion für alle Websitesammlungen in SharePoint aktivieren


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
 } 
}

Dieses PowerShell-Skript aktiviert die Funktion für alle Websitesammlungen.

Sie können diesen Einzeiler auch verwenden, um eine Funktion für alle Websitesammlungen zu aktivieren: (Allerdings ohne Fehlerbehandlung!)


Get-SPSite -Limit All | foreach {Enable-SPFeature "0561d315-d5db-4736-929e-26da142812c5" -url $_.URL } 

SharePoint: Aktivieren Sie eine Funktion auf allen Websites

Stellen Sie sich ein Szenario vor, in dem Sie eine Funktion auf Websiteebene (Web) auf Hunderten von Websites in einer Websitesammlung aktivieren müssen, was durchaus üblich ist. In meinem Fall musste ich die Nintex Workflow 2013-Funktion auf allen Unterwebsites innerhalb einer bestimmten Websitesammlung aktivieren.


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"
}

Dieses Skript aktiviert die Funktion für alle Websites in SharePoint.

Verwandte Artikel