Лучший отвечающий
Заполнение свойств профилей пользователей в SharePoint 2010.

Вопрос
-
Приветствую.
Появилась задача заполнять свойства в профилях пользователей из csv.
Это свойство необходимо заполнять в соответствии со значением другого свойства, в котором уже есть значение уникальное для каждого пользователя . Оба свойства созданы мной.
Для решения задачи попытался использовать скрипт:
01.
$CSVFile = "ListValue.csv"
02.
$mySiteUrl = "http://MySite"
03.
04.
$site = Get-SPSite $mySiteUrl
05.
$context = Get-SPServiceContext $site
06.
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)
07.
08.
$csv = import-csv -path $CSVFile
09.
foreach ($line in $csv)
10.
{
11.
$up = $profileManager.GetUserProfile($line.id)
12.
if ($up)
13.
{
14.
$up["propertyValue"].Value = $line.propertyValue
15.
$up.Commit()
16.
}
17.
if (!$up) {
18.
}
19.
}
Где:
Id = это свойство в соответствии которому необходимо заполнять
propertyValue = это свойтсво, которое необходимо заполнить
Но естественно я получаю ошибку вида:
Исключение при вызове "GetUserProfile" с "1" аргументами: "Ошибка при получении
профиля пользователя."
Оно и понятно, он их проверяет только по AccountName. ID = содержит значение не связаное с AD и не с самим SharePoint значение.
Буду бесконечно благодарен за любую помощь.12 декабря 2012 г. 8:36
Ответы
-
Понятно,
Вы можете использовать для поиска:
- простой перебор :)
- SPQuery -> Microsoft.Office.Server.Search.Query.KeywordQuery (с параметром HiddenConstraints = 'scope:"People"') но это поле должно быть видно для поисковика и краулиться. Пример использования.
- Как писал выше, использовать метод Search
SharePoint Advanced Visibility Options project
SharePoint Managed Metadata Claims Provider project
- Изменено HeToC 13 декабря 2012 г. 20:10 Добавоен пример к пп 2
- Предложено в качестве ответа HeToC 9 января 2013 г. 14:16
- Помечено в качестве ответа Roman Zhukov 10 января 2013 г. 14:02
12 декабря 2012 г. 12:35
Все ответы
-
Добрый день, А какая именно помощь вам нужна ? Для поиска профиля пользователя по доменному имени пользуйтесь методом GetUserProfile, или например методом Search.
SharePoint Advanced Visibility Options project
SharePoint Managed Metadata Claims Provider project12 декабря 2012 г. 8:52 -
Как раз нужно искать профиль не по доменному имени, а по свойству ID.12 декабря 2012 г. 11:59
-
Понятно,
Вы можете использовать для поиска:
- простой перебор :)
- SPQuery -> Microsoft.Office.Server.Search.Query.KeywordQuery (с параметром HiddenConstraints = 'scope:"People"') но это поле должно быть видно для поисковика и краулиться. Пример использования.
- Как писал выше, использовать метод Search
SharePoint Advanced Visibility Options project
SharePoint Managed Metadata Claims Provider project
- Изменено HeToC 13 декабря 2012 г. 20:10 Добавоен пример к пп 2
- Предложено в качестве ответа HeToC 9 января 2013 г. 14:16
- Помечено в качестве ответа Roman Zhukov 10 января 2013 г. 14:02
12 декабря 2012 г. 12:35 -
Понятно,
Вы можете использовать для поиска:
- простой перебор :)
- SPQuery -> Microsoft.Office.Server.Search.Query.KeywordQuery (с параметром HiddenConstraints = 'scope:"People"') но это поле должно быть видно для поисковика и краулиться
- Как писал выше, использовать метод Search
SharePoint Advanced Visibility Options project
SharePoint Managed Metadata Claims Provider project
Спасибо за ответ:)
Метод Search не подойдет, так как ограничен несколькими встроенными свойствами профилей. В моем случае оба свойства созданы мной.SPQuery отлично подходит и необходимые поле я сделал видимым для поисковика, но не совсем понял как его использовать в PowerShell, может есть какие то примеры?
13 декабря 2012 г. 14:44