Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

Im trying to create a userprofile section but when i run the code Im gettiong the following error you cannot cal a method on a null valued expression.please help me out thanks in advance.

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Sharepoint")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.UserProfiles")
[xml]$xmlData = Get-Content "C:\xmlsample.xml"
function CreateUserProfileSection()
{     
      $SiteUrl = "url" 
      $site = Get-SPSite $xmlData.UserProfileSection.SiteURL
      $context = Get-SPServiceContext ($site)
      $upcm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileConfigManager($context);      
      $ppm = $upcm.ProfilePropertyManager
      $cpm = $ppm.GetCoreProperties()
      $ptpm = $ppm.GetProfileTypeProperties([Microsoft.Office.Server.UserProfiles.ProfileType]::User)
      $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.UserProfileSection.Section | ForEach-Object{
          $property = $pspm.GetSectionByName($_.Name)             
            if($property -eq $null)
            {
                $Privacy=$_.Privacy
                  $PrivacyPolicy=$_.PrivacyPolicy
                $coreProp = $cpm.Create($true)
                $coreProp.Name = $_.Name
                $coreProp.DisplayName = $_.DisplayName
                $cpm.Add($coreProp)
                  write-host -f green $_.Name section is created successfully             
            }
            else
            {
               write-host -f yellow $_.Name section already exists
            }
      }
}
CreateUserProfileSection 
share|improve this question
    
The error is telling you that one of your objects is null (where you may have expected an object) and you are subsequently calling a function on this object. Have a look at the line number and then work out which objects could be null. :) –  Russell Jan 5 '12 at 3:42
add comment

2 Answers

Make sure you're provided the user running the code with Full Control to the UPA as well as Administrative access to the UPA. You can do this by highlighting the UPA in the Service Applications, then clicking on Permission and Administrators in the ribbon control.

share|improve this answer
add comment

What IDE are you using for your powershell? And do you know you can trap the actuall error See this http://huddledmasses.org/trap-exception-in-powershell/ Cheers Patrick

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.