Teams のユーザのIDや、メールアドレス、表示名をPowershellスクリプトで一括変更する。AzureADへの接続はMicrosoftGraphで行っている。
CSVを用意する
下記の書式でファイルを用意する。新旧のUPN(UserPrincipalName)兼メールアドレスをnewid、oldid という項目で定義する。氏名はログインしたときに表示される表示名(DisplayName)として設定される。$Dom 変数は環境に合わせて変更する。ファイル名はaccount.csvとして保存。
newid | oldid | 氏名 |
yamada-hanako | sato-hanako | 佐藤 花子 |
tanaka-akiko | suzuki-akiko | 鈴木 秋子 |
Powershellスクリプトを作成する。
下記内容のファイルを.ps1 拡張子のファイルとして保存して、実行する。$Dom 変数は自組織のドメインを入れる。
# 作業フォルダの定義
$scriptname = $MyInvocation.MyCommand.Name
$path = $PSScriptRoot
# 作業フォルダに移動
cd $path
#ログ取得
if (!(Test-Path .\log)){
mkdir .\log
Write-Output ("logフォルダを作成しました。")
}
$logfile = ".\log\" + $scriptname +"_"+ (Get-date -Format "yyyy-MMdd-HHmmss") + ".log"
Start-Transcript $logfile -Append
# AzureAD 接続
$cre = Import-Clixml -path C:\work\cred.xml
Connect-MgGraph -Scopes "User.ReadWrite.All"
Import-Module -Name Microsoft.Graph.Users
# CSVリストを取得
$Lists = Import-Csv -Encoding Default ".\account.csv"
#UPNのドメイン部分の定義
$Dom = "@tec-memo.com"
$count = 0
foreach($l in $Lists){
$count ++
$OldUpn = $l.oldid + $Dom
$NewUpn = $l.newid + $Dom
# ユーザ情報更新
Update-Mguser -UserId $OldUpn `
-UserPrincipalName $NewUpn `
-DisplayName $l.氏名 `
-mail $NewUpn
Write-Output("[" + $count +"]/[" + $Lists.Count + "] " + $OldUpn + " を " + $NewUpn + " に変更しました。" )
}
# Graph から切断
Disconnect-MgGraph
# ログ停止
Stop-Transcript
コメント