我到處搜索過,我認為這很常見,但也許不是。
我想透過 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
}