關鍵就是, 把 AD Group 的 msExchHideFromAddressLists 這個屬性設成 True
Get-ADGroup -Filter 'name -like "*G*"' | Set-ADGroup -Add @{msExchHideFromAddressLists=$True}
其中 *G* 是針對 Group 名稱的篩選條件
重點1: 要用 @{...} 這樣的語法, 才能設定這種屬性
重點2: Boolean 要用 Powershell 的保留字 $True 或 $False. 不可以直接寫字串 True/False
重點3: 如果msExchHideFromAddressLists 已經有值了 (也許先前設定過了), 那麼 -Add 要改成 -Replace
接下來是檢查一下設定的結果
Get-ADGroup -Filter 'name -like "*G*"' -Properties msExchHideFromAddressLists | select samAccountName, msExchHideFromAddressLists
重點: 這樣的屬性, 要另外在 -Properties 參數中指定, 才能在後面的 Pipe line 中 Select 出來
更花俏 Fancy 的寫法
Get-ADGroup -Filter 'name -like "*G*"' -Properties msExchHideFromAddressLists | select samAccountName, @{name="IsHide"; Expression={if ($_.msExchHideFromAddressLists -eq $true) {"Yes"} else {"--"} }}
其中 name 代表 自訂的輸出欄位標題名稱, 後面加分號
Expression={ ... } 裡面要放的, 是產生自訂欄位內容的指令. 上面的例子是寫一個簡單的 If 判斷式
從 name 開始, 到 Expression 的結束, 這一整段要用 @{ } 包起來
以上筆記