In this article we will be seeing how to Set Privacy Policies for User Profile 
Properties in SharePoint 2010 using PowerShell.
Introduction:
Microsoft SharePoint Server 2010 enables you to set privacy policies on user 
profile properties.
The Default Privacy policy limits the visibility of properties, users' My 
Documents, and other My Site content to:
	
		| 
		
		Member name | 
		
		Description | 
	
		| 
		
		Public  | 
		
		Privacy level gives visibility of users' profile 
		properties, and other My Site content, to everyone.  | 
	
		| 
		
		Contacts  | 
		
		Privacy level limits the visibility of users' profile 
		properties, and other My Site content, to my colleagues. 
		 | 
	
		| 
		
		Organization  | 
		
		Privacy level limits the visibility of users' profile 
		properties, and other My Site content, to my workgroup. 
		 | 
	
		| 
		
		Manager  | 
		
		Privacy level limits the visibility of users' profile 
		properties, and other My Site content, to my manager and me. 
		 | 
	
		| 
		
		Private  | 
		
		Privacy level limits the visibility of users' profile 
		properties, and other My Site content, to me only.  | 
	
		| 
		
		NotSet  | 
		
		Privacy level is not set.  | 
Note: For more information on 
PrivacyPolicy Enumeration please refer
http://msdn.microsoft.com/en-us/library/microsoft.office.server.userprofiles.privacypolicy.aspx.
Set Privacy Policies for User Profile Properties in SharePoint 2010
We can set Privacy Policies for User Profile Properties in SharePoint 2010 from 
Central Administration.
Go to Central Administration => Application Management => Manage Service 
Applications => User Profile Service Application.
![PrvcyPlcShare1.gif]()
Click on Manage User Properties
![Set Privacy Policies for User Profile Properties in SharePoint 2010 using PowerShell]()
Select the property and then click on Edit to modify the property.
![Set Privacy Policies for User Profile Properties in SharePoint 2010 using PowerShell]()
Automation: Set Privacy Policies for User Profile Properties in SharePoint 
2010 using PowerShell
Here we will be seeing how to set Privacy Policies for User Profile Properties 
in SharePoint 2010 using PowerShell.
Steps Involved:
	- Create the input XML file which contains 
	the inputs for setting Privacy Policies.
- Create ps1 file which contains the script 
	for setting Privacy Policies.
SetPrivacyPolicies.xml
<?xml
version="1.0"
encoding="utf-8" 
?>
  <PrivacyPolicies>
    <URL>http://serverName06:8080/</URL>
    <Property
Name="Sample1"
Privacy="Contacts"
PrivacyPolicy="mandatory"></Property>
    <Property
Name="Sample2"
Privacy="Public"
PrivacyPolicy="disabled"></Property>
    <Property
Name="Sample3"
Privacy="Manager"
PrivacyPolicy="OptIn"></Property> 
  </PrivacyPolicies>
SetPrivacyPolicies.ps1
 #----------------Get 
the xml file---------------------------------------------------------------
 [xml]$xmlData=Get-Content
"C:\Users\Desktop\ContentSources\SetPrivacyPolicies.xml"
 #----------------Set 
Privacy Policies for User Profile 
properties---------------------------------------------
function
SetPrivacyPolicies()
{
      
$site
= 
Get-SPSite 
$xmlData.PrivacyPolicies.URL
      
$context
= 
Get-SPServiceContext($site)
      
$psm
= 
[Microsoft.Office.Server.UserProfiles.ProfileSubTypeManager]::Get($context)
      
$ps
=
$psm.GetProfileSubtype([Microsoft.Office.Server.UserProfiles.ProfileSubtypeManager]::GetDefaultProfileName([Microsoft.Office.Server.UserProfiles.ProfileType]::User))
      
$pspm
=
$ps.Properties
      
$xmlData.PrivacyPolicies.Property 
| 
ForEach-Object{
            
$property
=
$pspm.GetPropertyByName($_.Name)
            
if($property
-ne
$null)
            {
                  
$Privacy=$_.Privacy
                  
$PrivacyPolicy=$_.PrivacyPolicy                
                  
$property.DefaultPrivacy
= 
[Microsoft.Office.Server.UserProfiles.Privacy]::$Privacy
                  
$property.PrivacyPolicy
= 
[Microsoft.Office.Server.UserProfiles.PrivacyPolicy]::$PrivacyPolicy               
        
                  
$property.Commit()
                  
write-host
-f
green
$_.Name
property
privacy
policies
are
modified
successfully
            }
            
else
            {
               
write-host
-f
yellow
$_.Name
property
does
not
exists
            }
      }
}
#----------------Calling the 
function--------------------------------------------- 
 SetPrivacyPolicies
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\SetPrivacyPolicies.ps1 
Output:
![Set Privacy Policies for User Profile Properties in SharePoint 2010 using PowerShell]()
And in the Central Administration you could see the Privacy Policy Settings 
modified for User Profile properties.