Powershell (Get-ADUser -identity).someproperty не показывает результат

Powershell (Get-ADUser -identity).someproperty не показывает результат

Я пытаюсь найти отдельные свойства пользователя 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

Связанный контент