web-dev-qa-db-ja.com

Exchange Powershellのスクリプトを作成して、すべての共有メールボックスの設定を変更するにはどうすればよいですか?

このガイドに従う: https://blogs.technet.Microsoft.com/exchange/2015/03/03/want-more-control-over-sent-items-when-using-shared-mailboxes/ ==

Exchange Powershell(Exchange管理コンソール)で次のコマンドを発行する必要があります。

set-mailbox <mailbox name> -MessageCopyForSentAsEnabled $True
set-mailbox <mailbox name> -MessageCopyForSendOnBehalfEnabled $True

しかし、私はたくさんの共有メールボックスを持っています。このコマンドを100回発行する必要はありません。 <mailbox name>に使用できる変数やスクリプトはありますか?これにより、すべてのsharedメールボックスに対してこのプロセスを自動化できますか? (これをonlysharedメールボックスに適用することは非常に重要であり、すべてのメールボックスだけではありません)。

1
Daniel

環境内のすべての共有メールボックスを取得するには、次を使用します。

Get-Mailbox -RecipientTypeDetails SharedMailbox

このコマンドの結果に対してこれらのコマンドを実行するのは簡単なはずです。

2
HopelessN00b

Get-Mailboxを使用して、結果をSet-Mailboxに渡します。これがワンライナーです

Get-Mailbox -Filter { <put your filter here> } | % { Set-Mailbox -MessageCopyForSentAsEnabled $True -MessageCopyForSendOnBehalfEnabled $True }

または、スクリプトに入れます。

$Mailboxes = Get-Mailbox -Filter { <put your filter here> }

Foreach ($Mailbox in $Mailboxes) {
    Set-Mailbox $Mailbox -MessageCopyForSentAsEnabled $True -MessageCopyForSendOnBehalfEnabled $True
}

重要なのは、Get-Mailbox部分をフィルタリングすることです。

3
Xalorous