2016-08-22 6 views
0

クラウドホストのO365テナントでは、すべてのユーザーのを参照し、電子メールドメインへの参照を削除するPowerShellスクリプトを実行したい私は取り除こうとしている。一例として、ユーザーの電子メールアドレスでドメインへの参照をすべて削除する

、我々は次のユーザーがある場合:

Jimbob Goodemails

@ olddomain.comアドレス(上記の場合は、[email protected])をすべてのユーザーから削除したいと考えています。

これらのアカウントのほとんどで、そのドメインはエイリアスとして設定されます(例: proxyAddressesフィールドのsmtp:[email protected]

しかし、一部のユーザー(はるかに少ない、おそらくわずか3または4)(例えばproxyAddressesSMTP:[email protected]mailUPN属性など)は、それらの主電子メールアドレスとして有していてもよいです。これらのユーザーは、代わりに既定のO365電子メールアドレスを使用できます。私は無駄には、次のスクリプトを試してみました

foreach($i in Get-Mailbox -ResultSize Unlimited) { 
  $i.EmailAddresses | 
    ?{$_.AddressString -like '*@olddomain.com'} | %{ 
      Set-Mailbox $i -EmailAddresses @{remove=$_} 
    } 
} 

それはしばらく座って、その後、終了したように見えますが、何も変わっていません。

私はActive Directory PowerShellスクリプトを使用しています。これは、AD同期ユーザー用に使用されています。そのため、主にクラウドユーザーとグループを変更しようとしています。

このようなユーザーの検索方法も知っておくと便利です。

答えて

0

方法:

あなたの現在のSMTPのの配列を作成します。

$SMTPs = $Mailbox.EmailAddresses -split "," 

は不要なSMTPアドレスを削除します。

$SMTPs | ? {$_ -notmatch 'olddomain.com'} 

その後フィルターSMTPSでのメールボックスを更新します。

Set-Mailbox $Mailbox -EmailAddresses $SMTPs 
あなたの例で

foreach ($i in Get-Mailbox -ResultSize Unlimited) 
{ 
$SMTPs = $i.EmailAddresses -split "," | ? {$_ -notmatch 'olddomain.com'} 
Set-Mailbox $i -EmailAddresses $SMTPs 
} 
関連する問題