近期因为疫情关系,部份同仁在家办公而改用 Webmail,因此需要将 LDAP 通讯录汇出成 csv 档,再汇到邮件系统中。上网查了一下,好在这次的动作不难 (印象以前使用 AD 的指令都很复杂),只需透过内建 csvde 这个专门处理 csv 的指令即可达成。
【需求】
◎ 针对 displayName、mail 有值的物件汇出。
◎ 汇出 displayName、mail 栏位 (属性)。
csvde -r "(&(mail=*)(displayName=*)" -l displayName,mail -u -f adds.csv # -r 針對屬性做篩選。 # -l 要匯出的欄位。 # -u 以 Unicode 格式匯出。 # -f 匯出成 csv 檔。
实际汇出后,会有少部份非预期的资料,可针对结果再加上筛选参数。以我來說,有部份资料是我当初设来做分隔使用的,这些物件的 mail 属性我设为 null 或 No-Mail-Group,因此便可以下面指令来排除:
csvde -r "(&(mail=*)(displayName=*)(!mail=null)(!mail=No-Mail-Group))" -l displayName,mail -u -f adds.csv
【参考资料】
- 如何汇出AD登入帐号以及Email帐号 – iT 邦帮忙::一起帮忙解决难题,拯救 IT 人的一天
- Csvde | 微软文档