どうもミツシマです。

今回はOffice365ネタとなります。
Office365を使用していて、ユーザープリンシパル名を一括変更したい場合があると思います。(←そんなケース稀だろっ!!)

そんな場合に一括変更する為の方法を今回検証してみました。

↓↓↓出来たスクリプトがこちら↓↓↓


〜ChangeUserID.ps1〜

#環境変数の設定
$CurrentFolder = Split-Path $MyInvocation.MyCommand.Path -Parent
$ImportCSVPath = $CurrentFolder + "¥UserInfo.csv"

#MSO認証するための管理者情報を格納
$Cred = Get-Credential

#MSOへログイン
Connect-MsolService -Credential $Cred

#CSVファイルの読み込み
$AllUserinfo = Import-Csv -Path $ImportCSVPath -Encoding Default

foreach($Userinfo in $AllUserinfo){
    
    $OldName = $Userinfo.UserPrincipalName
    $NewName = $Userinfo.NewUserPrincipalName
    Write-Host "旧ユーザー名:${OldName}"
    Write-Host "新ユーザー名:${NewName}"
    Set-MsolUserPrincipalName -UserPrincipalName $OldName -NewUserPrincipalName $NewName 

}

pause


〜UserInfo.csv〜

UserPrincipalName,NewUserPrincipalName
test05@mm20200107.onmicrosoft.com,mitsushima05@mitsushima.work
test06@mm20200107.onmicrosoft.com,mitsushima06@mitsushima.work
test07@mm20200107.onmicrosoft.com,mitsushima07@mitsushima.work


〜解説〜

いつものようにCSVファイルを用意してコマンド上でインポート・一括変更しているスクリプトです。
※「ChangeUserID.ps1」と「UserInfo.csv」を同じフォルダに配置して実行する。

まずはCSVファイルの解説から。
UserPrincipalName」列に現在のユーザープリンシパル名を記載。
NewUserPrincipalName」列に変更後のユーザープリンシパル名を記載。

後は「Microsoft Azure Active Directory モジュール」コマンドの「Set-MsolUserPrincipalName」を使用して一括変更している。
上記コマンドを使用する前準備については以下のサイトで解説があります。
(Office365)Powershellにてユーザーを一括登録する方法を検証してみた 〜New-MsolUser〜


こんな感じでユーザープリンシパル名の一括変更が可能です。
(変更後の確認は「Get-MsolUser」コマンドで一括確認が可能)


ちなみに独自ドメインへの一括変更するケースであれば、過去にこんな検証もしてます!!
<Office365>Powershellコマンドでユーザープリンシパル名(メールアドレス)を独自ドメインに一括変更する方法を検証してみた
※こっちは違うコマンド体系を使用してます。


ユーザープリンシパル名の一括変更なんて、そんなにやる機会がないかもですがご参考までに(^o^)
スポンサードリンク