2013-06-13

Try

{

$webApplicationURL = $args[0]

$featureFolderName = "Web level FeatureName"

$webApp = Get-SPWebApplication $webApplicationURL

if($webApp -ne $null)

{

 foreach($siteColl in $webApp.Sites)

 {

   if($siteColl -ne $null)

   {

   foreach($subWeb in $siteColl.AllWebs)

   {

    if($subWeb -ne $null)

    {

     # Print each Subsite

     Write-Host $subWeb.Url

     #Get Feature ID based on the Feature Name

     $FeatureID = Get-SPFeature -Web $subWeb.Url | Where {$_.DisplayName -eq $featureFolderName}

     if($FeatureID -ne $null)

     {

      #Check whether Feature to be activated is already activated for this subsite

      if (Get-SPFeature -Web $subWeb.Url | Where {$_.ID -eq $FeatureID.Id})

      {

       Write-Host $featureFolderName "is already activated at :" $subWeb.Url

                   Enable-SPFeature -Identity $featureFolderName -URL $subWeb.Url -Force 

                   Write-Host $featureFolderName "is Re-activated at :" $subWeb.Url

      }

      else

      {

       Enable-SPFeature -Identity $featureFolderName -Confirm:$false -Url $subWeb.url

       Write-Host $featureFolderName "has been activated at :" $subWeb.url

      }

     }

     $subWeb.Dispose()

    }

    else

    {

     Echo $subWeb "does not exist"

    }

   }

   $siteColl.Dispose()

  }

  else

  {

   Echo $siteColl "does not exist"

  }

 }

}

else

{

Echo $webApplicationURL "does not exist "

}

}

catch

{

   Write-Host -Object "Error occurred while running this script "

}

 

About the author 

Anil Lakhagoudar