.someproperty%20%D0%BD%D0%B5%20%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%20%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82.png)
Я пытаюсь найти отдельные свойства пользователя AD, когда я запускаю
(Get-ADUser $userName).$targetProperty
Я ничего не получаю, когда бегу.
Get-ADUser $userName | select $targetProperty
Я получаю собственность и пробел под ней. НО когда я бегу.
Get-ADUser $user -Properties *
Я получаю полный список и когда я смотрю на $targetProperty, там уже есть значение. Моя среда — 1 DC, она локальная, и я в режиме администратора.
решение1
Это зависит от целевого свойства, которое вы пытаетесь получить. Если это не одно из свойств в наборе по умолчанию (те, которые вы получаете, когда просто запускаете Get-ADUser testuser
), его нет в результирующем наборе, поэтому вы не можете получить его в другом месте вашей команды.
Вот свойства по умолчанию.
DistinguishedName : CN=Test User,CN=Users,DC=domain,DC=local
Enabled : True
GivenName : Test
Name : Test User
ObjectClass : user
ObjectGUID : 94916bd1-008e-409f-a1b3-eaXXXXXX266e
SamAccountName : TestUser
SID : S-1-5-21-23XXXXXX88-41XXXXX83-1941XXXX34-32584
Surname : User
UserPrincipalName : [email protected]
Допустим, вам нужно свойство Title
. Итак, ваша первая команда такая:
(Get-ADUser testuser).Title
Title
не входит в набор свойств по умолчанию, поэтому часть в скобках не включает Title
свойство, поэтому результатом комбинированной команды является ничто.
Вторая попытка:
Get-ADUser testuser | select Title
Это дает вам слово «Заголовок» в качестве заголовка столбца, но для него по-прежнему нет значения, поскольку первая часть команды по-прежнему не включает свойство Title
в результаты.
Третья попытка:
Get-ADUser testuser -Properties *
Ага! Это уже близко. Сюда входит недвижимость Title
, а также целая куча других вещей, которые вам сейчас неинтересны.
Четвертая попытка:
(Get-ADUser testuser -Properties *).title
Вот и все! Эта комбинация получает все свойства пользователя (включая Title
), а затем показывает вам только это Title
свойство.
Необязательный:Вы можете сделать это немного быстрее, не утруждая себя запросом более 100 свойств, которые -Properties *
вам предоставляются, а получив только свойства по умолчанию плюс Title
, с помощью этого:
(Get-ADUser testuser -Properties Title).Title
решение2
Я обнаружил, что следующее позволяет мне получить информацию, но почему это не работает с другими моими командами?
(Get-ADUser $user -Properties *).$targetProperty