У меня есть два варианта, я думаю. Откройте свойства SPUser
или получите информацию из активного каталога.
В первом случае вы не можете получить доступ к свойствам, как вы сделали для DisplayName
? Я имею в виду, если у вас есть объект SPUser
для получения электронной почты, просто используйте:
write-output "$($siteAdmin.Email)"
Для получения информации о том, как получить пользовательские свойства из активного каталога, вы можете легко реализовать решение, представленное в следующем вопросе . У меня все работало нормально.
Надеюсь, это поможет
РЕДАКТИРОВАТЬ с улучшением
Из документации MS у вас есть несколько доступных свойств, см. Участники SPUSer . Например, у вас нет phone
.
Чтобы получить что-то из активного каталога, попробуйте изменить следующую функцию, чтобы она возвращала нужные вам атрибуты (проверено на сервере Windows 2k8):
function Get-AD-Data {
$strFilter = "(&(objectCategory=User))"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree"
$objSearcher.FindAll() | select @{L="User";E={$_.properties.displayname}},
@{L="Department";E={$_.properties.department}},
@{L="MemberOf";E={$_.properties.memberof}}
}
Эта функция возвращает всех пользователей из AD вместе с выбранными атрибутами. Чтобы получить информацию от конкретного пользователя, вы бы использовали (я думаю):
$ad_userdetails = Get-AD-Data | ? {$_.user -eq $siteAdmin.Name}
Приветствия