近期因為疫情關係,部份同仁在家辦公而改用 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 | Microsoft Docs