如何在 ActiveDirectory 中获取没有子组的用户?
How to get users without subgroups in ActiveDirectory?
我有一个 PowerShell 脚本,可以将来自特定组的所有用户作为列表(用户、用户、用户 - 其中“,”是我的列表分隔符)然后我将它们添加到 *.xlsx 文件中(拆分后) ).我想要的是检查实际组成员是用户还是子组。
实际上,我检查了每个组成员是否在我的列表中,但这个解决方案不够好。
当我收到每个组的成员列表时,有什么方法可以检查它吗?
编辑
获取特定组中所有成员的脚本:
Import-Module ActiveDirectory
$groups = Get-ADGroupMember "CN=${GroupName},OU=Members,OU=FolderMain,OU=Start,DC=local"
foreach($element in $groups)
{
$element.name -creplace " - [0-9]{6}",""
";"
}
这段代码给我一个群组成员列表,例如:
USERNAME, USERSURNAME ; USERNAME, USERSURNAME ; ... ; USERNAME,
USERSURNAME
但是有些组包含其他组。我想要的是检查成员是组还是用户;当组 - 它不应该显示在我的列表中。
Import-Module ActiveDirectory
$groups = Get-ADGroupMember "CN=${GroupName},OU=Members,OU=FolderMain,OU=Start,DC=local"
foreach($element in $groups)
{
if (!$element.Members)
{
Write-Host "Group $element.Name have no members;"
}
$element.name -creplace " - [0-9]{6}",""
";"
}
直接通过 Where-Object
:
Get-ADGroupMember [...] | Where-Object { $_.objectClass -eq 'user' }
请注意,您可能需要考虑启用 -Recursive
开关 Get-ADGroupMember
,这将使用户进入目标组中的组。
另请注意,Get-ADGroupMember
为计算机对象提供了 'Computer'
的 objectClass
。这与严格的 LDAP 不同,后者的 objectClass
为 'user'
。您不必担心在此处指定 objectCategory
(据我所知不能)。
我有一个 PowerShell 脚本,可以将来自特定组的所有用户作为列表(用户、用户、用户 - 其中“,”是我的列表分隔符)然后我将它们添加到 *.xlsx 文件中(拆分后) ).我想要的是检查实际组成员是用户还是子组。
实际上,我检查了每个组成员是否在我的列表中,但这个解决方案不够好。
当我收到每个组的成员列表时,有什么方法可以检查它吗?
编辑
获取特定组中所有成员的脚本:
Import-Module ActiveDirectory
$groups = Get-ADGroupMember "CN=${GroupName},OU=Members,OU=FolderMain,OU=Start,DC=local"
foreach($element in $groups)
{
$element.name -creplace " - [0-9]{6}",""
";"
}
这段代码给我一个群组成员列表,例如:
USERNAME, USERSURNAME ; USERNAME, USERSURNAME ; ... ; USERNAME, USERSURNAME
但是有些组包含其他组。我想要的是检查成员是组还是用户;当组 - 它不应该显示在我的列表中。
Import-Module ActiveDirectory
$groups = Get-ADGroupMember "CN=${GroupName},OU=Members,OU=FolderMain,OU=Start,DC=local"
foreach($element in $groups)
{
if (!$element.Members)
{
Write-Host "Group $element.Name have no members;"
}
$element.name -creplace " - [0-9]{6}",""
";"
}
直接通过 Where-Object
:
Get-ADGroupMember [...] | Where-Object { $_.objectClass -eq 'user' }
请注意,您可能需要考虑启用 -Recursive
开关 Get-ADGroupMember
,这将使用户进入目标组中的组。
另请注意,Get-ADGroupMember
为计算机对象提供了 'Computer'
的 objectClass
。这与严格的 LDAP 不同,后者的 objectClass
为 'user'
。您不必担心在此处指定 objectCategory
(据我所知不能)。