1

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 
  • 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
1

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.

0

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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