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

[玩转系统] Active Directory 用户导出工具:CSV/JSON

作者:精品下载站 日期:2024-12-14 13:40:05 浏览:12 分类:玩电脑

Active Directory 用户导出工具:CSV/JSON


[玩转系统] Active Directory 用户导出工具:CSV/JSON

从 Active Directory 导出用户(或其他对象)非常方便。

PowerShell 是执行此操作的最简单方法,但也有一些选项。

大多数管理员会自动将数据导出为 CSV 格式,但这并不总是最佳选择。

如果您需要以编程方式使用导出的数据,通常最好将其导出为 JSON。

本文将介绍这两个选项。但首先:

从 Active Directory 导出哪些数据?

您可以使用 Get-ADUser 命令(可通过 RSAT 获得)导出用户。

如果要导出其他类型的对象,可以使用 Get-ADComputer、Get-ADGroup 或通用 Get-ADObject。

除了对象的类型之外,您还需要决定对象和属性的范围:

  • 您将搜索限制为哪些 OU?
  • 您想要什么额外的过滤?
  • 您想要导出哪些属性?

OU 由 SearchBase 参数指定,例如:

Get-ADUser -Filter * -SearchBase "OU=Alabama,OU=UnitedStates,OU=Users,OU=E365M,DC=Easy365Manager,DC=local"

最好使用非常强大的 LDAP 过滤器来执行附加过滤,例如:

Get-ADUser -LDAPFilter "(department=marketing)"

默认情况下,Get-ADUser 将仅返回一组非常有限的用户属性。

可以使用 Properties 开关和 Select-Object CmdLet 指定其他属性,例如:

Get-ADUser -Filter * -Properties sAMAccountName,givenName,sn,userPrincipalName | Select-Object sAMAccountName,givenName,sn,userPrincipalName

您现在需要的只是将 OU 范围、LDAP 过滤器和属性选择结合起来;然后,你有你的查询。

接下来,您必须选择要导出的类型:CSV 或 JSON。

如何使用 PowerShell 将 AD 用户导出到 CSV

当消费者精通 Excel 并且需要向管理层提供数据等情况时,此格式主要有用。

一个例子是项目经理希望您提供邮箱迁移进度的概述,以便她可以向 CIO 展示。

通过提供 CSV 格式的原始数据,项目经理可以轻松使用 Excel 公式汇总数据并创建漂亮的饼图。

将选定的用户属性提取到 CSV 中的最简单方法如下:

Get-ADUser -Filter * -Properties sAMAccountName,givenName,sn,userPrincipalName | Select-Object sAMAccountName,givenName,sn,userPrincipalName | Export-Csv c:\tmp\ADUsers.csv -NoTypeInformation

您应该打开 .csv 文件,将数据拆分为列,应用过滤器并将其另存为 .xlsx,然后再将其发送给项目经理:

[玩转系统] Active Directory 用户导出工具:CSV/JSON

如何使用 PowerShell 将 AD 用户导出为 JSON

如果您需要以编程方式访问导出的数据,最好将数据导出为 JSON。

通过将数据保存为 JSON,您可以在需要时轻松地再次导入数据。

一个示例是在进行脚本化更改之前导出一些用户属性以进行备份。

将选定的用户属性提取到 JSON 中的最简单方法如下所示:

Get-ADUser -Filter * -Properties sAMAccountName,givenName,sn,userPrincipalName | Select-Object sAMAccountName,givenName,sn,userPrincipalName | ConvertTo-Json -Compress | Out-File "c:\tmp\ADUsers.json"

导出的数据将类似于以下内容:

[玩转系统] Active Directory 用户导出工具:CSV/JSON

如果您需要快速查看数据(假设数据不是机密),请将其复制到在线 JSON 到表转换器:

[玩转系统] Active Directory 用户导出工具:CSV/JSON

JSON 导出数据的真正乐趣在于可以轻松转换回可编写脚本的对象!

使用以下 PowerShell CmdLet 将数据转换回用户集合:

$Users = Get-Content "C:\tmp\ADUsers.json" | ConvertFrom-Json

然后,您可以轻松使用 $Users 变量导入数据、将数据子集导出到 CSV,等等:

PS C:\> $Users | ? { $_.givenName -eq 'james' -and $_.sn -like 'm*' } | ft

sAMAccountName givenName sn       userPrincipalName
-------------- --------- --       -----------------
james.miller   James     Miller   [email protected]
james.martinez James     Martinez [email protected]
james.moore    James     Moore    [email protected]
james.martin   James     Martin   [email protected]
james.mitchell James     Mitchell [email protected]
james.morris   James     Morris   [email protected]
james.morales  James     Morales  [email protected]
james.murphy   James     Murphy   [email protected]
james.morgan   James     Morgan   [email protected]
james.mendoza  James     Mendoza  [email protected]
james.myers    James     Myers    [email protected]

概括

通过一些规划,您可以快速提供强大的 Active Directory 数据导出。

根据 OU、LDAP 过滤和属性考虑导出范围。

请注意导出的数据是否将用于 Excel 报告或进一步的编程处理。

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

取消回复欢迎 发表评论:

关灯