当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

作者:精品下载站 日期:2024-12-14 20:14:28 浏览:17 分类:玩电脑

使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)


Active Directory 用户和计算机 (ADUC) mmc 控制台中的已保存查询允许您创建复杂的LDAP 过滤器来选择 Active Directory 对象。这些查询可以保存、编辑并复制到其他计算机。您可以使用 Active Directory 保存的查询根据各种条件快速有效地查找 AD 对象。保存的查询可以帮助您快速执行常见的 AD 对象管理任务:显示域中所有禁用帐户的列表,选择在给定 Exchange 服务器上拥有邮箱的公司的所有用户等。

使用保存的 LDAP 查询时,管理员可以对来自 Active Directory 不同 OU(容器)的对象执行组操作。例如,您可以在AD对象/帐户下执行批量锁定/解锁/启用/禁用、移动、删除、重命名操作。 ADUC 控制台中的此类查询允许您绕过 Active Directory 中 OU 的层次结构,并在平面表视图中收集所有必要的对象。

大多数查找 AD 对象的操作都可以使用 Active Directory 的 PowerShell 模块中的 cmdlet(例如 Get-ADUser、Get-ADComputer、Get-ADObject、Get-ADGroup、Search-ADAccount 等)、dsquery.exe 工具、vbs 脚本等来完成。但是,对于非管理员用户来说,使用 ADUC GUI 显示有关 AD 对象的信息要容易得多。

Active Directory 保存的查询首次在 Windows Server 2003 中引入,并在更高版本的 Windows Server 中得到了进一步支持。要使用保存的 AD 查询,您必须在计算机上安装 ADUC 控制台(是 RSAT 管理工具的一部分)。

如何在 Active Directory MMC 控制台中创建已保存的查询?

让我们看一下在 Active Directory 用户和计算机控制台中使用保存的 LDAP 查询来搜索对象的几个典型示例。假设,我们必须显示活动用户帐户的列表、他们的部门名称和电子邮件地址。

  1. 打开 ADUC 控制台(

    dsa.msc

    ),右键保存的查询,选择新建->查询

    [玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

  2. 名称框中,指定要在 ADUC 控制台中显示的已保存查询的名称。

  3. 查询根字段中,您可以指定要在其中搜索的容器 (OU)。默认情况下,查询条件的搜索是在整个AD域内进行的。在我们的示例中,我们将通过选择“Brasil”容器来缩小搜索范围;

    [玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

  4. 然后点击定义查询按钮,并在查找下拉列表中选择自定义搜索

    [玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

  5. 转到高级选项卡,并将以下 LDAP 查询复制到输入 LDAP 查询框中。此查询选择启用的用户帐户(请参阅下表中的 LDAP 查询的其他示例):

    (&(objectcategory=person)(objectclass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))

    [玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

  6. 单击“确定”保存更改;

  7. 在ADUC控制台中选择创建的查询,按F5构建对象列表。结果,右侧窗口中将出现与您的 LDAP 查询匹配的用户列表;

    [玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

  8. 为了显示其他用户属性(电子邮件地址、部门等),请在 ADUC 控制台中打开查看菜单,然后选择添加/删除列

    [玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

  9. 添加您想要的列。我们添加了 3 个附加字段:用户登录名电子邮件地址部门

    [玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

  10. 生成的用户帐户列表可以保存到 CSV 或 TXT 文件中,以供进一步分析并导入到 Excel 中。为此,请右键单击已保存的查询并选择导出列表菜单项。

    注意。您还可以使用 PowerShell 从 AD 获取数据并将其直接保存到 Excel 文件。

    [玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

在 ADUC 控制台中,您可以创建许多不同的已保存查询,并将它们组织在树结构中。通过这种方式,您可以创建方便的 LDAP 查询集合,以快速执行常见的 AD 管理任务。

[玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

ADUC mmc 管理单元支持多种构建 Active Directory 保存查询的模式。无需每次都手动指定 LDAP 过滤器代码。您可以使用简单的图形向导创建 AD 查询。您只需选择 AD 对象的不同属性,并使用它们根据您想要的条件搜索对象。例如,要列出域中的所有 Windows Server 计算机对象:

  1. 查找->计算机;

  2. 转到高级选项卡;

  3. 字段 -> 操作系统;

  4. 星标 -> 指定您的标准

    Windows Server *

    [玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

通配符是

*

,您可以指定

*Server*

可以将多个搜索条件添加到您保存的查询中。

保存查询并刷新 ADUC 控制台中的对象列表。该列表将显示您域中的所有 Windows Server 对象。

保存的查询本地存储在创建它们的计算机上。包含设置的 XML 文件位于以下位置:C:\Users\%USERNAME%\AppData\Roaming\Microsoft\MMC\DSA)。要在计算机之间传输 AD 保存的查询,可以将查询导入/导出为 dsa.msc 中的 XML 文件(导出查询定义/导入查询定义)。

[玩转系统] 使用 ADUC MMC 中保存的查询(Active Directory 用户和计算机)

Active Directory MMC 有用的已保存查询示例

下表包含用于选择 Active Directory 对象的常用 LDAP 查询的示例。您可以将它们保存到 ADUC 控制台以供日常使用。

首先是“已保存的 ADUC 查询”,然后是“LDAP 过滤器”。

在用户名中搜索“admin”关键字:

(objectcategory=group)(samaccountname=*admin*)

在描述字段中搜索带有“service”关键字的用户帐户:

(objectcategory=person)(description=*service*)

列出空的 Active Directory 组(没有用户):

(objectCategory=group)(!member=*)

启用“密码永不过期”选项的用户:

(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=65536)

超过3个月未修改密码的用户:

(&(sAMAccountType=805306368)(pwdLastSet<=132161330597286610))

查找部门字段中具有“销售”的用户:

(&(objectCategory=person)(objectClass=user)(department=*sales*))

具有空配置文件路径属性的用户:

(objectcategory=person)(!profilepath=*)

密码过期的活动用户帐户:

(objectCategory=person)(objectClass=user)(pwdLastSet=0)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)

所有 AD 用户(禁用的除外):

(objectCategory=person)(objectClass=user)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)

锁定的 AD 用户帐户:

(objectCategory=person)(objectClass=user)(useraccountcontrol:1.2.840.113556.1.4.803:=16)

拥有电子邮件地址的用户:

(objectcategory=person)(mail=*)

没有电子邮件地址的用户:

(objectcategory=person)(!mail=*)

Exchange 通讯簿 (GAL) 中隐藏的用户::

(&(sAMAccountType=805306368)(msExchHideFromAddressLists=TRUE))

从未登录过域的帐户列表(可以在 AD 的“附加帐户信息”选项卡中更方便地查看上次登录时间的信息):

(&(objectCategory=person)(objectClass=user)(|(lastLogonTimestamp=0)(!(lastLogonTimestamp=*)))

特定时间段(2019年)创建的用户账户:

(&(&(objectCategory=user)(whenCreated>=20190101000000.0Z&<=20200101000000.0Z&)))

今年创建的AD用户:

(&(&(&(objectClass=User)(whenCreated>=20200101000000.0Z))))

运行 Windows 10 的计算机:

(&(objectCategory=computer)(operatingSystem=Windows 10*))

运行特定 Windows 10 版本的计算机(例如 Windows 10 1909 的版本号为 18363):

(&(&(objectCategory=computer)(operatingSystem=Windows 10*)(operatingSystemVersion=*18363*)))

查找除域控制器之外的所有 Windows Server 2016:

(&(&(objectCategory=computer)(!(primaryGroupId=516)))(operatingSystem=Windows Server 2016*))

所有 Microsoft SQL 服务器:

(&(objectCategory=computer)(servicePrincipalName=MSSQLSvc*))

所有 Exchange 通讯组:

(&(objectCategory=group)(!groupType:1.2.840.113556.1.4.803:=2147483648))

查找具有特定 SID 的 AD 对象:

(objectSID=S-1-5-21-87654321-12345678-5566443311-1231)

在 PowerShell 中使用 LDAP 筛选器

您可以使用上述 LDAP 过滤器在 PowerShell 控制台中查找 AD 对象。 PowerShell Active Directory 模块中的大多数 cmdlet 都有一个特殊的 LdapFilter 参数。您需要在此参数中指定您的 LDAP 查询。例如:

Get-ADUser -LdapFilter "(&(objectCategory=person)(objectClass=user)(department=*Sales department*))"| ft -a DisplayName,department

Get-ADUser、Get-ADComputer 和 Get-ADGroup cmdlet 是专用 cmdlet,用于查找特定类型的对象(用户、计算机或组)。如果您不知道所需的 AD 对象类型,或者需要有关所有类型对象的信息,请使用更常见的 Get-ADObject cmdlet。例如,要通过 SID 搜索对象:

Get-ADObject -LdapFilter "(objectSID=S-1-5-21-87654321-12345678-5566443311-1231)" -Properties * -SearchBase “OU=DE,DC=a-d,DC=com"| ft -a DisplayName,Title

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯