In this article we will be seeing how to create a Content Source Scope Rule in 
SharePoint 2010 Enterprise Search Service Application using PowerShell.
Content Source Scope Rule creation in SharePoint 2010
We can create a Content Source Scope Rule in SharePoint 2010 Enterprise Search 
Service Application from Central Administration.
Go to Central Administration => Application Management => Manage Service 
Applications => Enterprise Search Service Application.
![CrtScpSil1.gif]()
On the Quick Launch Menu, go to Queries and Results then click on Scopes.
![CrtScpSil2.gif]()
You could be able to see the Scopes. 
![CrtScpSil3.gif]()
Click on the Scope to which Scope Rule has to be added.
Click on Add New Rule link to add the new scope rule. 
![CrtScpSil4.gif]()
In the Scope Rule Type section, select Content Source.
In the Content Sources section, select the Content Source that has to be added 
to the scope rule.
Click on Ok.
![CrtScpSil5.gif]()
Automating the Content Source Scope Rule creation in SharePoint 2010
Here we will be seeing about automating the Content Source Scope Rule creation 
using powershell script.
Steps Involved:
	- Create the input XML file which contains 
	the inputs for Content Source Scope Rule creation.
- Create ps1 file which contains the script 
	for Content Source Scope Rule creation.
CreateContentSourceScopeRules.xml
<?xml
version="1.0"
encoding="utf-8" 
?>
<ScopeRules>
  <SSAName>EnterPrise 
Search Service Application</SSAName>
  <ScopeURL>http://server06:8080/</ScopeURL>
  <Rule
ScopeName="Sample1"
ContentSourceName="Sample1 
SharePoint Sites" />  
  <Rule
ScopeName="Sample2"
ContentSourceName="Sample2 
SharePoint Sites" />
  <Rule
ScopeName="Sample3"
ContentSourceName="Sample3 
SharePoint Sites" />
</ScopeRules>
CreateContentSourceScopeRules.ps1
 #----------------Get 
the xml file---------------------------------------------------------------
 [xml]$xmlData=Get-Content
"C:\Users\Desktop\ContentSources\CreateContentSourceScopeRules.xml"
 #----------------Create 
Content Source Scope Rule function---------------------------------------------
Function
CreateContentSourceScopeRule()
{
     
$flag=0     
       $ssa=Get-SPEnterPriseSearchServiceApplication 
-Identity 
$xmlData.SSAName
       $ssaContent
=
new-object
Microsoft.Office.Server.Search.Administration.Content($ssa)
       $scopeCollection=Get-SPEnterpriseSearchQueryScope  
-SearchApplication 
$ssa
       $xmlData.ScopeRules.Rule 
| 
ForEach-Object 
{
             $ScopeName=$_.ScopeName
             $contentSourceName=$_.ContentSourceName
             $scope=Get-SPEnterpriseSearchQueryScope 
-SearchApplication 
$ssa  
| 
Where-Object 
{$_.Name
-eq
$ScopeName}
             if($scope
-ne
$null)
             {
                    
foreach 
($availableContentSource
in
$ssaContent.ContentSources)
                {
                        
if 
($availablecontentSource.Name.ToString()
-eq
$contentSourceName)
                        {
                                
$flag=1
                                
break
                          }
                   }
                     
if($flag
-eq 
1)
                     {  
                         
$ScopeRules=Get-SPEnterpriseSearchQueryScopeRule 
-Scope 
$scope 
| 
Where-Object 
{$_.Value
-eq
$contentSourceName}              
   
                           
if($scopeRuleFlag
-ne
$null)
                           {
                                 
write-host
-f
Yellow
"Can't add or modify scope rule. A rule with the same parameters already exists 
in this
scope"                              
   
                           }
                           
else
                           {
                                 
write-host
-f
Magenta
Creating
Content
Source
Scope
Rule
                                 New-SPEnterpriseSearchQueryScopeRule -RuleType 
PropertyQuery -ManagedProperty ContentSource -PropertyValue 
$contentSourceName 
-FilterBehavior Include -URL 
$xmldata.ScopeRules.ScopeURL 
-scope 
$scope 
-SearchApplication 
$ssa
                                 
write-host
-f
Green
Content
Source
Scope
Rule
is
created
successfully
to
$ScopeName
scope
                           }                       
                     }
                     
else
                     {
                           
write-host
-f
Yellow
$contentSourceName
content
source
does
not
exists 
                          
                     }
             }
             else
             {
                    
write-host
-f
yellow
$ScopeName
scope
does
not
exists                 
  
             }  
       }
}
 #----------------Calling 
the function--------------------------------------------- 
 CreateContentSourceScopeRule
Run the Script:
	- 
	
	Go to Start. 
- 
	
	Click on All Programs. 
- 
	
	Click on Microsoft SharePoint 2010 Products 
	and then click on SharePoint 2010 Management Shell. 
- 
	
	Run the C:\Users\Desktop\ContentSources\CreateContentSourceScopeRules.ps1 
Output:
![CrtScpSil6.gif]()
And in the Central Administration you could see the newly added Content Source 
Scope Rule as shown in the following
![CrtScpSil7.gif]()