从活动目录提取信息

从活动目录提取信息

我在一家大型公司分公司的 IT 支持部门工作。

我必须管理包含所有用户、计算机等的数据库。我正在尝试找到一种方法来尽可能自动更新数据库,但 IT 基础设施人员没有给我足够的权限来使用 Active Directory 来转储用户,他们也没有时间给我所需的信息。

几天前,我在 Sysinternals 上找到了 Active Directory 资源管理器,它允许我浏览 Active Directory,我在那里找到了我需要的所有信息(用户名、真实姓名、创建日期、权限、公司等)。不幸的是,我无法将数据导出为人类可读的格式。我只能以机器可读的格式对整个数据库进行快照。制作快照需要几个小时,我担心基础设施人员不喜欢我定期制作整个快照。

您是否知道任何工具(最好是命令行)可以让我检索键的值或将其导出为 XML、CSV 等?

答案1

使用 Active Directory 的旧命令行工具转储到 CSV: http://support.microsoft.com/kb/298882

或者使用较新的 PowerShell 套件导出到 CSV、Excel 等。如果您不熟悉 Powershell 语法,PowerGUI 工具非常适合您。 http://www.powergui.org

或者使用不太旧但不太新的 VBScript 方法。以下是将所有用户的所有属性导出到 Excel 的示例 VBScript: http://gallery.technet.microsoft.com/scriptcenter/4d192f4d-2830-4a3e-9352-64a7e696a36e

微软在这里提供了大量的 PowerShell 和 VBScript 示例: http://gallery.technet.microsoft.com/ScriptCenter/

答案2

我将您的问题重新解释为:

如何以易于处理的格式将数据从 AD 中导出(无论是完整转储还是逐个对象)?

您需要熟悉 Powershell 和 ActiveDirectory 模块。您可以执行以下操作:

Import-Module ActiveDirectory
$me = Get-ADUser myUsername -Properties givenName,sn
Write-Output "My name is $($me.givenName) $($me.sn)."

或这个:

Import-Module ActiveDirectory
$subsetUsers = Get-ADUser -Filter * -SearchBase "ou=someou,dc=mydomain,dc=com"

或这个:

Import-Module ActiveDirectory
$allUsers = Get-ADUser -Filter *
Write-Output "I've found $($allUsers.Count) users in this domain - writing to CSV."
$allUsers | Export-CSV "myOutputFile.csv"

Powershell 是你最好的朋友。

答案3

首先,尝试与基础设施团队合作,如果您可以向他们解释您到底需要什么数据,他们可能会自动为您设置一些东西。

我在这里推荐两件事:

SVDE/LDIFDE 的实现。这些是命令行实用程序,可以导出您想要的任何信息。如果您想要处理某些内容,请使用 csvde,如果您想要完整备份或更改选择属性的能力,请考虑 ldifde。

http://technet.microsoft.com/en-us/library/cc787549%28WS.10%29.aspx

http://msdn.microsoft.com/en-us/library/ms870068%28v=exchg.65%29.aspx

Softerra LDAP 浏览器是一款出色的 GUI 工具,您可以用它来浏览“原始”AD。

http://ldapbrowser.com/

寻找名为 ldap browser 的免费版本,而不是 ldap manager。从这里您可以右键单击任何对象并导出 ldifde。

相关内容