2021年2月18日 星期四
使用 PowerShell 進行硬體資產調查
使用 PowerShell 讀取 Synology NAS LDAP Server
網路上查到的PowerShell 讀取 LDAP 資訊,幾乎清一色都是讀取 Active Directory....
很少講到如何讀取 Linux LDAP Server
找了好久,終於找到 C# 讀取 LDAP 的資訊,改成 PowerShell
使用 PowerShell 批次執行 IE ,自動登入 Synology NAS
這次會想寫這個程式,是因為公司打算將 G Workspace 轉移到 Synology NAS
公司本來也沒有使用 AD or LDAP 做驗證,打算將帳號整合到 LDAP 做未來準備。
轉移郵件的功能 MailPlus 本身的功能就很完整,不需要太多操心
但是Synology Drive 卻沒辦法自動批次轉移全公司的 Google Drive!
使用Cloud Sync ,必須讓使用者自行操作,也沒辦法限制使用者只能加入指定的 Google Workspace
幸運的是,Synology Active Backup for G Suite可以將全部使用者的Google Drive 都備份下來,只要把使用者備份檔案複製到使用者家目錄,就可以正常在Synology Drive 使用。
只是因為整合了 LDAP 驗證,所以家目錄變成 "帳號-LDAP uidNumber" 這樣的格式。
手動去建立家目錄也很麻煩(一兩百個帳號),用PowerShell 讀取 LDAP 也有點麻煩,所以最簡單的方法就是使用者登入Synology NAS,Synology NAS 會自動建立家目錄。
以下不多說,就直接看程式吧
之前在每個 Page 變動後,都去偵測 $ie.ReadyState = 4 或是 $ie.Busy = $False 程式才繼續執行,都會發生錯誤
後來改成檢查 $ie.Document.getElementById('ext-gen84') 是否為物件也會誤判
再改成檢查 $ie.Document.getElementById('ext-gen84') 是否存在,也還是會誤判
最後改成判斷 $ie.Document.getElementById('ext-gen84')的 Type 才成功。