我有一个 Active Directory 运行Samba 4.6.3
在一个服务器上Debian Jessie
。在 Windows 7 PC(AD 客户端)上,我安装了RSAT,并从那里使用管理员帐户管理服务器,但现在我需要以可读格式导出完整的用户列表,最好是.csv
使用RSAT(来自 Windows 中的客户端)到目前为止,我只成功导出了OU
(组织单位)内的所有对象,一次OU
一个,OU
用户容器或 PC 容器,也就是说,我可以做什么我想通过为每个OU
用户容器重复该过程来(导出完整的用户列表),但我有很多OU
用户容器。
问题:有没有什么方法可以快速导出完整的用户列表,包括姓名和姓氏,OU
并且无需重复工作?
PD:答案不必局限于带有 RSAT 的 Windows 中的客户端,也可以在 Samba 服务器中
Bash 解决方案.. 部分...
从提取 AD 内容开始:
“-W”强制交互式提示输入用户密码。您不希望它出现在命令历史记录中。如果您将其组合到一个脚本中,那么您可以使用“-w”并保护密码访问。
现在内容已被提取到文本文件中,我们可以使用文本处理将其转换为 CSV 或我们想要的任何其他格式。
ldif 文件被包装,所以第一步是解开它
在这里,我们将记录重新定义为包含一个具有两个行尾的文本块和一个包含一个只有一个行尾和一个空格的文本块的字段。接下来,我们将每一行作为一个字段处理,将 ldif 包装的点赞(“\n”)连接到一个字段中。现在我们有了一个展开的 ldif,最后一步是将 ldif 转换为 csv。
这是一个大大简化的 awk 转换脚本,它将解开的 ldif 转换为 csv。
可以将 dn 提取给用户 ou 并获取所需的其他字段。只需扩展最终的 awk 脚本。