假设我在域A中有一个AD用户,该用户在域B中的AD组中,而我的客户端在域C中。
我想将用户从PowerShell中的组中删除,但是我真的不知道如何使用Remove-ADGroupMember
或Remove-ADPrincipalGroupMembership
解决此问题,因为我只能在那里传递一个域。
答案 0 :(得分:0)
我假设域A和B不在同一个林中,但是它们是受信任的。
问题是您没有删除对用户的直接引用:您正在删除外部安全主体,该主体是与引用受信任域中的帐户的组相同的域中的对象。我在我写的文章What makes a member a member?中对此进行了更详细的讨论。
PowerShell cmdlet似乎都无法处理这些问题。但是您可以使用.NET的DirectoryEntry
类来执行此操作。这是一个示例($username
和$groupname
是帐户和组的名称):
$u = Get-ADUser -Server domainA.com $username
#Get the Foreign Security Principal object for the user
$fsp = Get-ADObject -Server domainB.com -Filter "objectSid -eq '$($u.SID)'"
#Get the group
$g = Get-ADGroup -Server domainB.com $groupname
#Get a DirectoryEntry for the group (which is what the [ADSI] notation creates)
$group = [ADSI]"LDAP://domainB.com/$($g.DistinguishedName)"
#Remove the FSP from the group
$group.Properties["member"].Remove($fsp.DistinguishedName)
$group.CommitChanges()