Ich habe überall gesucht und denke, dass dies ziemlich häufig vorkommt, aber vielleicht auch nicht.
Ich möchte die Domäne eines Benutzers mit dem Benutzernamen über Get-ADGroupMember auflisten. Ich habe zum Beispiel Folgendes:
Get-ADGroupMember -identity "MyGroup" -Recursive -Server "my.domain.net" | select-object SamAccountName
welche Listen
SamAccountName
--------------
jsmith
dsmith
lsmith
Ich möchte, dass diese Liste die primäre Domäne des Benutzers zurückgibt, also habe ich zum Beispiel die Domänen
prod.my.domain.net
dev.my.domain.net
my.domain.net
Ich möchte eine Abfrage, die Folgendes zurückgibt:
prod\jsmith
dev\dsmith
my\lsmith
abhängig von der Benutzerdomäne (beachten Sie, dass die Reihenfolge der Namen keine Rolle spielt).
Antwort1
Ok, nachdem ich weiter gegoogelt und eine Weile damit herumgespielt habe, bin ich auf Folgendes gestoßen, das mir das gibt, was ich brauche. Ich bin nicht sicher, ob das der beste Weg ist, es zu bekommen, aber es scheint mir klar zu sein
Get-ADGroupMember -identity "MyGroup" -Recursive -Server "my.domain.net" | select-object @{name="Login"; expression={(($_.DistinguishedName -split '(DC=)')[2] -replace ',')+"\"+$_.SamAccountName}}
was gibt
Login
-----
prod\jsmith
dev\dsmith
my\lsmith
Antwort2
Ich verfüge nicht über eine Multidomänenumgebung zum Testen, aber ich bin davon überzeugt, dass dies das gewünschte Ergebnis liefert.
Get-ADGroupMember -Identity 'MyGroup' | foreach {
$ADuser = Get-ADUser -Identity $_.sAMAccountName -Properties UserPrincipalName
$Domain = $ADuser.UserPrincipalName.Split('@.')[1]
$Name = $Domain + '\' + $ADuser.Name
$Name
}