Synology NAS 快速建立大批帳號小技巧

在 Synology NAS 使用者帳號建立, 可直接匯入一文字檔, 批次建立大量帳號, 當你的單位需要建立大批帳號時此一功能相當實用.

我們先來看看文字檔的格式. (取自 Synology DSM online help)
方法一. 使用文件編譯器:
使用文件編譯器開啟一個新檔案。
依照下列順序輸入使用者資訊,並以 TAB 鍵分隔:
名稱
密碼
描述
電子郵件
儲存空間1的空間配額(MB) (如果您有一個以上的儲存空間請重複這個步驟)
換至下一行,並重複步驟 2 輸入所有的使用者帳號。每一行僅能容納一位使用者的資訊。
以 UTF-8 編碼儲存檔案。

然後進入 DSM 使用者帳號建立 > 新增 > 匯入清單, 即完成大量帳號建立工作 (系統已存在帳號會自動跳過)


如果一切都那麼完美, 就沒有什麼好分享了. 真正在實作時, 小弟遇到重重的困難.

首先小弟利用各種已知程式及技巧很快的做了一份 sample.csv file (如下)


看起來符合上面的規範, 但將它匯入後, 竟然是這種狀況.


沒有錯, 因為系統很堅持在每個欄位之間一個要是一個 TAB 字元, 所以看起來正常的文字檔, 匯入後卻出現錯誤, 很快的小弟想到 Synology online help 教的第二個技巧.

方法二. 使用 Microsoft Excel:
使用 Excel 開啟一個新檔案。
在同一行儲存格中,依照下列順序輸入使用者資訊:
名稱
密碼
描述
電子郵件
儲存空間1的空間配額(MB) (如果您有一個以上的儲存空間請重複這個步驟)
換至下一行,並重複步驟 2 輸入所有的使用者帳號。每一行僅能容納一位使用者的資訊。
使用文件編譯器開啟一個新檔案。複製步驟 2, 3 輸入的使用者資訊至新增的文字檔案。
以 UTF-8 編碼儲存檔案。

我把上述的 sample.csv file 每個欄位之間加入逗號, 很快速的匯入 excel, 如下看起來很完美.


照著指示開啟 Notepad, 並從 Excel copy & paste to Notepad, 同樣存檔再至 DSM 匯入. 如下, 這次所有欄位都 '塞' 正確了, 但怎麼還是錯誤?


都是 space 字元在作怪
做到這裡真的快瘋掉, Synology RD 為何不直接用標準 CSV file?, 每個欄位之間以逗號隔開就好, 偏偏堅持每個欄位之間一定要是一個 TAB 字元, 前面看起來正確的檔案格式, 就是因為中間實際上塞了很多空白字元進去, 導至 DSM 匯入時發生錯誤.

要怎麼解? 怎麼快速的把空白字元去掉, 並在每個欄位之間塞入 TAB 字元? 後來找到這篇
Quickly replace multiple space characters with a tab character
http://www.techrepublic.com/blog/msoffice/quickly-replace-multiple-space-characters-with-a-tab-character/1277

用 Microsoft Word 來幫忙, (網友如果有更好的做法, 歡迎分享)


再用 DSM 匯入一次看看. 成功!


ps: 如果真的要用 Excel 處理, 記得一樣使用替代功能, 將檔案中所有的空白字元先取代掉.

結論
1.Synology RD 是否下次改版時考慮一下, 支援標準 CSV file 格式, 不要把問題搞的這麼覆雜.
2.DSM 新增群組少了匯入的功能
3.文字檔最後希望再加一欄 "使用者群組" 欄位. 這樣在建大量帳號時更方便. 少了這個欄位, 所有 user 建好後, 還要逐一進去指定 group.
FB: Pctine
最好再加上匯出公功能!~~~~~~~~~~~~~~
我想是不是因為使用者名稱跟密碼都可以有空白或是逗號,他才會堅持用 Tab 來分隔?不然 parse 就會有問題。
這個不就是很基本的帳號匯入功能,當初我用Thecus 也是打好但中間用逗點,就匯入就好了。
看板大的描述有點複雜搞不太清楚。
我想這應該最最基本的功能吧。反而匯出才是重點未來要昇級才用的到。
NAS 愛好者 wrote:
這個不就是很基本的帳...(恕刪)


yes, 它是最基本的功能, 但就是因為 Synology NAS 文字檔格式是以 TAB 做分隔, 才會比較麻煩, 而且用 TAB 來分隔反而無法處理有些欄位要留白, parser 反而更難處理.

例如用逗號來區分
johnson,pass1234,Johnson Chen,johnson@test.com

這樣的格式就是標準的 CSV format, 但用 TAB 來分, 中間有一欄要留白呢(例如名字 Johnson Chen不打)? 根本就不曉得要怎麼建檔.

export 功能能夠加進來就更理想了, 但現階段用 LDAP 是可以變相做為匯出之用.
FB: Pctine
pctine wrote:
johnson,pass1234,Johnson Chen,johnson@test.com...(恕刪)


如果你的密碼有 "," 的話,這格式就會出錯了,永遠無法匯入...
我覺得要求這格式也可以,最好可以讓使用者多個選項,選擇用哪一個字元當分隔
因為 CSV 本來就是可以選不同字元當分隔,只是 Synology 選了一種不會出錯的格式,但是不一定符合有些使用者習慣。

syslogd wrote:
如果你的密碼有 ",...(恕刪)


說的也是, 當初沒有考慮到密碼裡面有逗號的問題,不過這個問題容易解決, 既然已經要大批匯入帳號, 自然在編密碼的時候就會迴避掉它.
FB: Pctine
Excel另存新檔時選擇tab分隔的文字文件即可匯入了
文章分享
評分
複製連結