次に、Get-Recipientを変数に入れたフィルターを用いて表示させてみます。
===============
PS C:\> Get-Recipient -Filter $galFilter | ? {$_.HiddenFromAddressListsEnabled -eq $false}
Name RecipientType
---- -------------
AllCompany.15012683776.bcbv_5c7067a4-b7a2-40b9-aebc-fb7341ecde69 MailUniversalDistributionGroup
Test UserMailbox
testContact01@example.com MailContact
testContact02@example.com MailContact
testContact03@example.com MailContact
testContact04@example.com MailContact
testContact05@example.com MailContact
testContact06@example.com MailContact
testContact07@example.com MailContact
testContact08@example.com MailContact
testContact09@example.com MailContact
testContact10@example.com MailContact
会議室1 UserMailbox
共有MB UserMailbox
PS C:\>
===============
ここで表示される結果が既定のGALで表示されるオブジェクトです。
これをカスタムして連絡先オブジェクトを表示させないようにしてみます。
===============
((Alias -ne $null) -and (((ObjectClass -eq 'user') -or (ObjectClass -eq 'msExchSystemMailbox') -or (ObjectClass -eq 'msExchDynamicDistributionList') -or (ObjectClass -eq 'group') -or (ObjectClass -eq 'publicFolder'))))
===============
GALの受信者フィルターからContactを除いてこんな感じになります。
カスタムしたフィルターを変数に入れます。
===============
$customFilter = "((Alias -ne `$null) -and (((ObjectClass -eq 'user') -or (ObjectClass -eq 'msExchSystemMailbox') -or (ObjectClass -eq 'msExchDynamicDistributionList') -or (ObjectClass -eq 'group') -or (ObjectClass -eq 'publicFolder'))))"
===============
※ $をバッククオートでエスケープさせるのを忘れないように!
このフィルターで表示されるオブジェクトを確認します。
===============
PS C:\> Get-Recipient -Filter $customFilter | ? {$_.HiddenFromAddressListsEnabled -eq $false}
Name RecipientType
---- -------------
AllCompany.15012683776.bcbv_5c7067a4-b7a2-40b9-aebc-fb7341ecde69 MailUniversalDistributionGroup
Test UserMailbox
会議室1 UserMailbox
共有MB UserMailbox
PS C:\>
===============
連絡先オブジェクトが表示されなくなり、フィルターが正しく書けていることが確認できました。
あとはNew-GlobalAddressListなりNew-AddressListなりでこの受信者フィルターを使ったアドレス帳を作りましょう。
例:
New-AddressList -Name "without Contact" -RecipientFilter $customFilter