我到处搜索过,我认为这很常见,但实际上并非如此。
我想通过 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
}