捐血一袋救人一命

江蘇拙政園

江蘇 拙政園

全家福

日本 和歌山城

賞楓之旅

千燈 夕照

水鄉千燈

蘆洲 微風運河

破曉時分

2021年2月18日 星期四

使用 PowerShell 進行硬體資產調查

Windows 的 WMI, CIM 有很多資訊可以運用管理
例如軟硬體資產、系統資源效能、程式運作等

這次要做的是硬體資產調查,以前我有介紹使用 AIDA64 Business 來做資產調查,但這套軟體是要付費的。

所以不想要花錢,又要做到資產調查,就只好自己動作來

只要將 PowerShell 程式將資料寫入網芳檔案,使用群組政策,讓使用者開機就自動執行這個 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 才成功。