セカンダリアドレス(エイリアス)を削除できない場合、UPN(ユーザー名)に登録している値と同一であることが想定されます。
削除するためには、UPNに登録されている値をセカンダリアドレスと異なる値に変更する必要があります。
今回は、複数のユーザーのUPNの変更とセカンダリアドレスの削除を一括でおこなう方法についてご紹介したいと思います。
UPN を一括で変更する手順
【事前準備】
AzureADに接続してから実行してください。
接続のために以下のコマンドレットを実行し、管理者ユーザーの ID とパスワードを入力します。
【コマンドレット】
Connect-MsolService
1. CSV ファイルを作成します。
対象ユーザーの情報を記載した CSV ファイルを作成します。
【作成例】
UserPrincipalName,NewUserPrincipalName
User1@contoso.com,User1@contoso.onmicrosoft.com
User2@contoso.com,User2@contoso.onmicrosoft.com
User3@contoso.com,User3@contoso.onmicrosoft.com
…
【説明】
・1 行目に [UserPrincipalName]、[NewUserPrincipalName] と記載し、2 行目以降に対象ユーザーの現在の UPN と新しい UPN を記載します。
UserPrincipalName : 現在の UPN
NewUserPrincipalName : 変更後の UPN
・ネットワークに負荷が生じる恐れがありますので、作成する 1 つの CSV ファイルでは、1,000 ユーザー以内で作成することをお勧めします。
CSVファイルとして保存する際は、文字化けを防ぐため文字コードをUTF-8にご指定ください。
- CSVファイルを右クリックし、[プログラムから開く] - [メモ帳]の順にクリックします
- 開いたメモ帳で[ファイル] - [名前を付けて保存] の順にクリックします。
- ファイルの種類で「すべてのファイル」を選択します。
- 文字コードで「UTF-8」を選択します。
- [保存]をクリックします。
2. UPN を一括で変更する
以下のコマンドレットを実行します。
【コマンドレット】
Import-Csv "<1. で作成したファイル名>.csv" | Foreach-Object {Set-MsolUserPrincipalName -UserPrincipalName $_.UserPrincipalName -NewUserPrincipalName $_.NewUserPrincipalName}
【実行例】
Import-Csv "C:\temp\UserList.csv" | Foreach-Object {Set-MsolUserPrincipalName -UserPrincipalName $_.UserPrincipalName -NewUserPrincipalName $_.NewUserPrincipalName}
【説明】
・上記実行例は C ドライブ直下の temp フォルダに保存された UserList.csv ファイルに記載されているユーザーの UPN を一括で変更します。
・NewUserPrincipalName に指定した値はプライマリアドレスに登録され、元々プライマリアドレスであった値はセカンダリアドレスへ移動します。
セカンダリアドレスを一括で削除する手順
【事前準備】
以下のサイトの手順にて、Exchange Online に接続してから実行してください。
1. CSV ファイルを作成します。
対象ユーザーの情報を記載した CSV ファイルを作成します。
【作成例】
PrimarySmtpAddress,RemoveSmtpAddress
User1@contoso.onmicrosoft.com,User1@contoso.com
User2@contoso.onmicrosoft.com,User2@contoso.com
User3@contoso.onmicrosoft.com,User3@contoso.com
【説明】
・1 行目に [PrimarySmtpAddress]、[RemoveSmtpAddress] と記載し、2 行目以降に対象ユーザーのプライマリアドレスと削除するセカンダリアドレスを記載します。
PrimarySmtpAddress : プライマリアドレス
RemoveSmtpAddress : 削除するセカンダリアドレス
- CSVファイルを右クリックし、[プログラムから開く] - [メモ帳]の順にクリックします
- 開いたメモ帳で[ファイル] - [名前を付けて保存] の順にクリックします。
- ファイルの種類で「すべてのファイル」を選択します。
- 文字コードで「UTF-8」を選択します。
- [保存]をクリックします。
2. セカンダリアドレスを一括削除する Powershell コマンドレットを実行
項番 1 にて作成した CSV ファイルを読み込み、一括でセカンダリアドレスを削除します。
[基本構文]
Import-CSV "<保存した CSV ファイルパス>" | Foreach {Set-Mailbox -Identity $_.PrimarySmtpAddress -EmailAddresses @{Remove="smtp:$($_.RemoveSmtpAddress)"}}
[実行例]
Import-CSV "C:\Temp\RemoveSmtpAddress.csv" | Foreach {Set-Mailbox -Identity $_.PrimarySmtpAddress -EmailAddresses @{Remove="smtp:$($_.RemoveSmtpAddress)"}}
【説明】
・上記実行例は C ドライブ直下の temp フォルダに保存された RemoveSmtpAddress.csv ファイルに記載されているユーザーのセカンダリアドレスを一括で変更します。
なお、すべてのユーザーメールボックスの UPN とプライマリアドレスとセカンダリアドレスを CSV ファイルに一覧として取得する場合、以下のコマンドレットをで可能です。
<構文>
Get-Mailbox -ResultSize unlimited -RecipientTypeDetails UserMailbox | Select UserPrincipalName,EmailAddresses | Export-CSV -Encoding UTF8 -Path <ファイルパス\ファイル名>.csv -NoTypeInformation
<実行例>
Get-Mailbox -ResultSize unlimited -RecipientTypeDetails UserMailbox | Select UserPrincipalName,EmailAddresses | Export-CSV -Encoding UTF8 -Path C:\temp\UserMailbox.csv -NoTypeInformation
※C ドライブの配下の temp フォルダーに UserMailbox.csv という名前のファイルで情報保存する場合
<出力結果>
UserPrincipalName : ユーザー ID (UPN)
EmailAddresses : SMTP (プライマリアドレス)、smtp (セカンダリアドレス)