Teams ユーザID、メールアドレスなどの情報を一括変更する Powershell スクリプト

スポンサーリンク

Teams のユーザのIDや、メールアドレス、表示名をPowershellスクリプトで一括変更する。AzureADへの接続はMicrosoftGraphで行っている。

CSVを用意する

下記の書式でファイルを用意する。新旧のUPN(UserPrincipalName)兼メールアドレスをnewid、oldid という項目で定義する。氏名はログインしたときに表示される表示名(DisplayName)として設定される。$Dom 変数は環境に合わせて変更する。ファイル名はaccount.csvとして保存。

newidoldid氏名
yamada-hanakosato-hanako佐藤 花子
tanaka-akikosuzuki-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

コメント

タイトルとURLをコピーしました