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

[玩转系统] 从 Active Directory 中提取用户属性

作者:精品下载站 日期:2024-12-14 06:21:33 浏览:15 分类:玩电脑

从 Active Directory 中提取用户属性


迷失在 Active Directory (AD) 的复杂性中,您是否曾感受过提取用户属性的挫败感?有没有更可行的途径来揭示您想要的信息?不用担心,因为解决方案不只是一种,而是多种,而本教程将为您提供支持。

在本教程中,您将揭开从 AD 中无缝提取用户属性的秘密 - 不再需要无休止地滚动或浏览令人困惑的菜单。

负责身份管理、增强访问控制并简化安全审核!

先决条件

在深入研究用户属性之前,请确保您已准备好以下内容以按照本教程进行操作。

  • Windows 计算机 - 本教程使用配置为域控制器的 Windows Server 2022。
  • 已安装 Active Directory 用户和计算机 (ADUC) 和 Active Directory 管理中心 (ADAC)。

? 如果您没有 Windows Server,您可以在 Windows 客户端上以不同方式设置 ADUC 和 ADAC。

  • 对您的 Windows 计算机具有管理员访问权限的用户。

通过 ADUC 提取用户属性

最终目标是实现高效、精准和流畅的用户管理体验——而 ADUC 完美满足了这些期望。无论是提取用户名还是深入组织单位,ADUC 都是您无缝收集所需信息的首选工具。

要通过 ADUC 提取用户属性,请执行以下操作:

1. 打开“运行”对话框,输入dsa.msc,然后单击确定(或按 Enter 键)打开 ADUC。

[玩转系统] 从 Active Directory 中提取用户属性

2. 在 ADUC 的主窗口中,单击查看菜单并选择高级功能以启用属性编辑器。

[玩转系统] 从 Active Directory 中提取用户属性

3. 启用后,展开您的域(左窗格),选择用户以查看所有用户,然后双击目标用户以打开其属性窗口(第四步)。

[玩转系统] 从 Active Directory 中提取用户属性

4. 现在,导航到用户的属性窗口中的属性编辑器选项卡以查看用户的属性。

请注意,有太多空属性。你会滚动浏览所有内容吗?如果没有,则跳转到以下步骤过滤用户属性。

[玩转系统] 从 Active Directory 中提取用户属性

5. 单击过滤,然后选择您希望如何过滤属性列表。但对于本示例,选择第一个选项仅显示具有值的属性

[玩转系统] 从 Active Directory 中提取用户属性

如果成功,您将只能看到列表中具有值的属性,如下所示。

这份名单看起来好多了,对吧?甚至滚动滑块的大小也增加了,这表明列表比过滤列表之前更短。

[玩转系统] 从 Active Directory 中提取用户属性

强制执行 ADAC 来提取用户属性

ADUC,即使作为一个遗留工具,无疑也可以用于提取用户属性。但如果您更喜欢现代界面和增强功能,ADAC 就是您的选择。

要通过 ADAC 提取用户属性,请完成以下步骤:

1. 打开“运行”对话框 (Win+R),输入 dsac.exe,然后按 Enter 启动 ADAC。

[玩转系统] 从 Active Directory 中提取用户属性

2. 接下来,导航到您的域(即ata.local)下的用户以查看所有用户,然后双击您的目标用户查看其属性窗口。

[玩转系统] 从 Active Directory 中提取用户属性

3. 现在,导航到扩展(左窗格)以查看用户的属性,访问属性编辑器选项卡,然后根据需要过滤列表。

是不是觉得这些步骤很熟悉?原因是 ADAC 是 ADUC 的现代版本。那么,是什么让 ADAC 脱颖而出呢?仅举几例,能够查看和修改细粒度密码策略和动态访问控制。

但话又说回来,您同时的重点是提取用户属性。

[玩转系统] 从 Active Directory 中提取用户属性

采用命令行方法提取用户属性

ADUC 和 ADAC 都为您提供提取用户属性的 GUI 体验。但是,当您的愿景是自动化任务时,您必须采用命令行方法。一个示例是执行 dsquerydsget 命令来查询目录服务对象。

要通过命令行方法提取用户属性,请完成以下步骤:

以管理员身份打开命令提示符,然后运行以下dsquery命令来查询名称中包含*demo*的用户。查询后,dsget user 通过 SamAccountName (-samid) 和 DisplayName (-display) 显示结果。

dsquery user -name *demo* | dsget user -samid -display

如下所示,如果多个 AD 用户的名称中包含“demo”,您将看到多个结果。

从结果中选择一个 samid(即 aduser),因为您在提取用户属性的后续步骤中将需要它。

[玩转系统] 从 Active Directory 中提取用户属性

现在,执行以下命令来查询 (dsquery) 并显示有关您在第一步中记下的 AD 用户对象 (aduser) 的信息。

? 请记住,当您希望包含所有属性时,必须在命令中手动指定每个属性。

以下是命令中指定的属性的详细信息:

-samid

安全帐户管理器 (SAM) 帐户名是分配给域中每个用户的唯一名称。

-display

DisplayName 属性通常表示用户的全名或显示名称。

-upn

用户主体名称 (UPN) 是 AD 中用户帐户的用户友好标识符,通常用于用户登录。

-dn

输出中的用户专有名称 (DN) 是 AD 中对象的唯一标识符。 DN 提供目录树中对象位置的完整路径。

dsquery user -samid aduser | dsget user -samid -display -upn -dn

[玩转系统] 从 Active Directory 中提取用户属性

通过 PowerShell Get-ADUser cmdlet 提取用户属性

想想自动提取用户属性所节省的时间。这项技能对于合规性、审计或保持 AD 的良好状态至关重要。

利用 PowerShell 的强大功能,可以提高 AD 管理的效率。 PowerShell 封装在一组专门构建的 cmdlet(例如 Get-ADUser)中,使您能够简化复杂的任务,包括提取用户属性。

要通过 PowerShell cmdlet 提取用户属性,请执行以下步骤:

1. 以管理员身份打开 PowerShell,然后运行以下命令,按 SamAccountName 列出所有已启用的 AD 用户 (Get-ADUser)。

? 如果您已经知道目标用户的 SamAccountName,则可以跳过此步骤并跳转到第二步继续提取用户属性。

Get-ADUser -Filter {Enabled -eq $true} -Properties SamAccountName | Select SamAccountName

? 也许您希望列出所有用户,包括残疾人。如果是这样,请将 {Enabled -eq $true} 参数替换为通配符 (*)。

从列表中选择一个用户并记下其 SamAccountName 以供以后使用,但本示例中的选择是 aduser

[玩转系统] 从 Active Directory 中提取用户属性

? (可选)您可以附加 Sort-Object cmdlet 以按特定属性(即 SamAccountName)对列表进行排序。

2. 接下来,执行以下命令以提取有关您在第一步中选择的 AD 用户(即 aduser)的信息,及其 DisplayNameUserPrincipalName专有名称

Get-ADUser -Filter {SamAccountName -eq 'aduser'} -Properties SamAccountName, DisplayName, UserPrincipalName |
	Select-Object SamAccountName, DisplayName, UserPrincipalName, DistinguishedName | Format-Table

[玩转系统] 从 Active Directory 中提取用户属性

3. 执行以下代码,将 AD 用户的 SamAccountName (aduser) 属性数据导出 (Export-Csv) 到 CSV 文件(即 aduser.csv)。 csv)。

确保将 aduser 替换为 aduser.csv,其中包含用户的 SamAccountName 和您首选的 CSV 文件名(完整路径)。

此代码在控制台上没有输出,但您稍后将检查 CSV 文件中的数据。

# Define user SamAccountName
$samName = 'aduser'
# Define CSV file path
$CSVFile = ".\Documents\aduser.csv"

# Get user details from Active Directory
$userDetails = Get-ADUser -Filter {SamAccountName -eq $samName} -Properties * |
    ForEach-Object {
        # Extract properties, exclude 'PropertyNames' and 'PropertyCount', and remove null values
        $_.PSObject.Properties |
            Where-Object { $_.Name -notin ('PropertyNames', 'PropertyCount') -and $_.Value -ne $null } |
            ForEach-Object {
                [PSCustomObject]@{
                    Name = $_.Name
                    Value = $_.Value
                }
            }
    }

# Export user details to CSV file
$userDetails | Export-Csv -Path $CSVFile -NoTypeInformation

4. 最后,打开CSV文件以验证数据是否已成功导出。

PowerShell Get-ADUser cmdlet 确实是一个强大的工具。此 cmdlet 是您获得无与伦比的灵活性的门票,允许您在提取用户属性时定制查询。

[玩转系统] 从 Active Directory 中提取用户属性

结论

在本教程中,您深入研究了从 AD 中提取用户属性的各种方法。您已经探索了从熟悉的 ADUC 界面到更高级的 ADAC 和通过 PowerShell 的命令行方法的各种技术。通过关注 PowerShell Get-ADUser cmdlet,您可以有效地利用其功能来根据特定条件检索用户详细信息。

反思您所学到的知识,您现在拥有多种工具可以根据您的需求提取用户属性。

但展望未来,为什么不考虑通过创建可随时调用的 PowerShell 函数或模块来简化您的工作流程并使代码可重用?

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

取消回复欢迎 发表评论:

关灯