Get-ADGroupMember 在 select-object 中获取用户的域

Get-ADGroupMember 在 select-object 中获取用户的域

我到处搜索过,我认为这很常见,但实际上并非如此。

我想通过 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

取决于用户域(注意名称的顺序无关紧要)。

答案1

好吧,在谷歌上搜索了更多内容并尝试了一段时间后,我找到了以下方法,它满足了我的需求。我不确定这是否是最好的方法,但对我来说,它似乎很简洁

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

答案2

我没有多域环境可供测试,但我相信这会满足您的要求。

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

相关内容