У нас более 200 тысяч пользователей в нашей системе sitecore. Мне нужно экспортировать список пользователей, соответствующих определенным критериям. Я использую для этого сценарий powershell и использую команду get-user для получения пользователей. Затем я просматриваю список пользователей и выбираю тех, которые соответствуют моим критериям; в моем случае это пользователи старше 18 лет. Затем я записываю результат в файл csv, используя export-csv. Я считаю, что это занимает более 1,5 часов.
Мой вопрос: есть ли способ получить пользователя и указать мои критерии возраста старше 18 лет? Поле age хранится в пользовательском свойстве. Кроме того, какие-либо другие эффективные способы (кроме powershell) выполнить то, что я пытаюсь сделать здесь?
Вот исходный код:
function export($user)
{
$age = $user.profile.GetCustomProperty("age")
if{$age -gt 18)
{
$id = $user.profile.GetCustomProperty("id")
$firstname = $user.profile.GetCustomProperty("first name")
$user | select-object -property @{Name="First Name";Expression={$firstname}},
@{Name="Age";Expression={$age}},
@{Name="ID";Expression={$id}} |
Export-CSV -Path c:\temp\out.csv -Append -NoTypeInformation
}
}
$users = get-user -Filter *
if($users -ne $null)
{
$users | foreach {export($_)}
}