Я искал повсюду, и я думаю, что это будет довольно распространено, но, возможно, нет.
Я хочу указать домен пользователя с именем пользователя через 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
в зависимости от домена пользователя (обратите внимание, порядок имен не имеет значения).
Ok, după ce am căutat mai mult și am jucat cu asta pentru o vreme, am venit cu următoarele, care obțin ceea ce am nevoie. Nu sunt sigur dacă acesta este cel mai bun mod de a-l obține, dar mi se pare curat
Get-ADGroupMember -identity "MyGroup" -Recursive -Server "my.domain.net" | select-object @{name="Login"; expression={(($_.DistinguishedName -split '(DC=)')[2] -replace ',')+"\"+$_.SamAccountName}}
ceea ce oferă
Login
-----
prod\jsmith
dev\dsmith
my\lsmith
Nu am un mediu multi-domeniu pe care să testez, dar cred că acest lucru va face ceea ce doriți.
Get-ADGroupMember -Identity 'MyGroup' | foreach {
$ADuser = Get-ADUser -Identity $_.sAMAccountName -Properties UserPrincipalName
$Domain = $ADuser.UserPrincipalName.Split('@.')[1]
$Name = $Domain + '\' + $ADuser.Name
$Name
}