User Property Administration - ein Administrations-Alptraum wie aus den frühen 90ern. |
Bauen wir uns also ein Skript, beginnen wir mit dem laden der SharePoint cmdlets und dem erstellen eines UserProfileManager-Objekts. Dieses Objekt beinhaltet alle Profile und Properties aus der Service Application, die im Kontext der angegebenen Seite verwendet wird.
- # Load Sharepoint SnapIn
- if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null)
- {
- Add-PSSnapin Microsoft.SharePoint.PowerShell
- }
- # Create Service Context
- $site = Get-SPSite http://mySiteHostUrl
- $serviceContext = Get-SPServiceContext $site
- # Get ProfileManager, User Profiles and User Properties
- $profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($serviceContext)
- $userProfiles = $profileManager.GetEnumerator()
- $properties = $profileManager.get_Properties()
- # Create new Property
- [Microsoft.Office.Server.UserProfiles.Property]$property = $properties.Create($false)
- # Set property vaules
- $property.set_Name("Property Name")
- $property.set_Description("Property Description")
- $property.set_DisplayName("Property Displayname")
- $property.set_IsUserEditable($true)
- $property.set_IsVisibleOnEditor($true)
- $property.set_IsVisibleOnViewer($true)
- $property.set_Type(String)
- $property.set_Length(255)
- # set other values you need...
- $property.Commit()
- # Add new Property to Repository
- $properties.Add($property)
- foreach($userProfile in $userProfiles)
- {
- # Set New Value
- $userProfile["Property Name"].Add("New Value")
- $userProfile.Commit()
- }
Good luck,
Andreas