查询 Active Directory 组的成员

查询 Active Directory 组的成员

因此,在活动目录中,有一个名为 WebSiteUsers 的组用于允许访问我通过 IIS 托管的文件夹。我想知道(使用 DSQuery、ADFind 或任何免费提供的工具)如何执行以下操作:

  1. 我如何查询 WebSiteUsers 的专有名称(假设它埋在 AD 中的几个 OU 深处)?

  2. 如何查询 WebSiteUsers 以生成用户列表(以人类可读的格式),以便我可以将其与另一组进行比较,以确保已添加所有需要访问此资源的人?对于此示例,假设 WebSiteUsers 已添加几千个帐户,因此目视检查不是一种选择。我更喜欢使用 excel 来比较用户列表,因此导出 CSV 或某种我可以在 excel 中操作的文本文件将是理想的选择。

答案1

要查找 DN,请运行命令dsquery group -name WebSiteUsers


如果您为 PowerShell 设置了域控制器(您应该这样做;这很棒),您可以运行该命令$WebSiteUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=WebSiteUsers,OU=Lemings,OU=CorporateBranch,DC=example,DC=com'$WebSiteUsers | Export-CSV输出到 CSV。您也可以Compare-Object像这样使用命令:

$WebSiteUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=WebSiteUsers,OU=Lemings,OU=CorporateBranch,DC=example,DC=com'
$OtherGroupUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=OtherGroups,OU=Lemings,OU=CorporateBranch,DC=example,DC=com'
Compare-Object -ReferenceObject $WebSiteUsers -DifferenceObject $OtherGroupUsers -Property Name

这将剔除一个组或另一个组中遗漏的姓名列表。(-IncludeEqual如果要查看所有人,请添加。)这将使目视检查变得更加容易:

Jim Bob                      =>                                                                                               
Suzie Q                      <=                                                                                               
Harold Johnson               <=  

如果要将其他组的所有成员添加到 WebSiteUsers 组:

Compare-Object $OtherGroupUsers $WebSiteUsers | Where {$_.SideIndicator -eq '=>'} | foreach{Add-ADGroupMember -Identity WebSiteUsers -Members $_}

在 Add-ADGroupMember 命令上添加 -WhatIf 可能不会有什么坏处,以仔细检查它是否会执行预期的操作。


您还可以使用 Active Directory 用户和计算机管理单元获取此列表。您需要远程医疗安装后可以从您的工作站执行此操作,否则您可以远程进入域控制器并打开它。

右键单击“已保存的查询”,然后选择“新建”、“查询”:

在此处输入图片描述

给它一个任意名称和简短描述,然后单击定义查询:

在此处输入图片描述

Find:选择下Custom Search。单击字段并选择用户、成员

在此处输入图片描述

输入您想要包含的组的名称,然后单击“添加”:

在此处输入图片描述

现在您可以在 ADUC 中查看此列表。要导出它,请单击导出列表按钮。这将输出到制表符分隔的文本文件。

在此处输入图片描述

相关内容