Here is the powershell script to print all User Profile properties for a SharePoint farm and print them into a .csv file
1. Copy the code below and modify the variables highlighted in yellow below, save the following as PrintAllUserProfileProperties.ps1 file:
param
(
$siteAddress
)
Add-PsSnapin "Microsoft.SharePoint.PowerShell"
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.UserProfiles")
try
{
$site = New-Object Microsoft.SharePoint.SPSite $siteAddress
$context = [Microsoft.SharePoint.SPServiceContext]::GetContext($site)
$configManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileConfigManager $context
$propertyManager = $configManager.ProfilePropertyManager
set-variable -option constant -name out -value "C:\PrintAllUserProfileProperties.csv"
foreach ($codeProperty in $propertyManager.GetCoreProperties())
{
if (!$codeProperty.IsSection)
{
$codeProperty.DisplayName + " - " + $codeProperty.Name | Out-File $out -append
}
}
}
finally
{
if ($site -ne $null)
{
$site.Dispose()
}
}
Echo "Finished!"
Echo "User Profile properties printed at:" $out
Remove-PsSnapin "Microsoft.SharePoint.Powershell"
2. To automatically run the above .ps1 script as a batch utility, Copy and paste the code below and save it with a .bat file extension, kindly make sure you update the siteAddress switch with the relevant farm URL
cd /d %~dp0
powershell -noexit -file ".\PrintAllUserProfileProperties.ps1" -siteAddress "http://dev-sp-2010:1000/sites/SPFix" "%CD%"
pause
Run the above .bat file, on the receipt of success message, traverse to the configured path and find the .csv file with all the user profile properties printed.
No comments:
Post a Comment