Назад | Перейти на главную страницу

Get-ADGroupMember Получить домен пользователя в select-объекте

Я искал повсюду, и я думаю, что это было бы довольно часто, но, возможно, нет.

Я хочу указать домен пользователя с именем пользователя через Get-ADGroupMember. Так, например, у меня есть это:

Get-ADGroupMember -identity "MyGroup" -Recursive -Server "my.domain.net" | select-object SamAccountName

который перечисляет

SamAccountName
--------------
jsmith
dsmith
lsmith

Я хочу, чтобы этот список возвращал основной домен пользователей, поэтому, например, у меня есть домены

prod.my.domain.net
dev.my.domain.net
my.domain.net

Я хочу получить ответ

prod\jsmith
dev\dsmith
my\lsmith

в зависимости от домена пользователя (обратите внимание, порядок имен не имеет значения).

Хорошо, после того, как я погуглил больше и немного поигрался с этим, я придумал следующее, что дает то, что мне нужно. Я не уверен, что это лучший способ получить его, но мне он кажется чистым.

Get-ADGroupMember -identity "MyGroup" -Recursive -Server "my.domain.net" | select-object @{name="Login"; expression={(($_.DistinguishedName  -split '(DC=)')[2] -replace ',')+"\"+$_.SamAccountName}}

который дает

Login
-----
prod\jsmith
dev\dsmith
my\lsmith

У меня нет многодоменной среды для тестирования, но я считаю, что это сделает то, что вы хотите.

Get-ADGroupMember -Identity 'MyGroup' | foreach {
$ADuser = Get-ADUser -Identity $_.sAMAccountName -Properties UserPrincipalName
$Domain = $ADuser.UserPrincipalName.Split('@.')[1]
$Name = $Domain + '\' + $ADuser.Name
$Name
}