見出し画像

M365の配布グループの表示名をPowerShellで一括変更(更新編)

Microsoft365(M365)の配布グループに関して、表示名一括変更の更新編です。準備編は下記をご確認ください。

準備編で生成されたExcelファイルに変更する表示名を入力します。
その後、以下のPowerShellを実行してください。

PowerShell

※ 必要なモジュールは適宜インストールしてください。

# スクリプトファイルがある場所のパスを取得
$CurrentFolder = Split-Path $MyInvocation.MyCommand.Path -Parent

# Excelを操作する為の宣言
$excel = New-Object -ComObject Excel.Application
# 起動したExcelを表示しない
$excel.Visible = $false
# Excelファイルのフルパスを取得
$excelFile = (Get-ChildItem $CurrentFolder"\配布G名変更_*.xlsx").FullName
# もしExcelファイルが存在していたら開く。なければ終了。
if (-not ([string]::IsNullOrEmpty($excelFile))){
    $book = $excel.Workbooks.Open($excelFile, 0, $true)
}else{
    Write-Host "エクセルファイルが存在しないため実行できません。"`r`n
    exit
}
# エクセルファイルのデータを取得
$sheet = $book.Worksheets.Item("Sheet1")
# 最終行の行数取得
$lastrow = $sheet.Range("A2").End([Microsoft.Office.Interop.Excel.XlDirection]::xlDown.value__).Row

# 認証情報を入力
$Credential = Get-Credential

# ExchangeOnlineに接続
Connect-ExchangeOnline -Credential $credential

# ログを格納する配列を作成
$Log_array = @()

for ($i = 3; $i -lt $lastrow+1 ; $i++) {
    # 変更する配布グループを取得
    if(-not($sheet.Cells.Item($i, 2).Text -eq "")){
        $BeforeDisplayname = $sheet.Cells.Item($i, 1).Text
        $AfterDisplayname = $sheet.Cells.Item($i, 2).Text
        $BeforeName = $sheet.Cells.Item($i, 5).Text
        if($BeforeName -match "[0-9]{14}$"){
            $BeforeNameNumber = [regex]::Matches($BeforeName, "[0-9]{14}$")
            $AfterName = $AfterDisplayname + $BeforeNameNumber
        }else{
            $AfterName = $AfterDisplayname
        }
        Set-DistributionGroup -Identity $BeforeDisplayname -DisplayName $AfterDisplayname -Name $AfterName 
        $Log = [string]($i)+" " + $BeforeDisplayname +" を " +$AfterDisplayname +" に変更しました。"
        $Log_array += $Log
    }
}

# ログ(配列)をCSV出力
if ($Log_array.count -gt 0 ){
    $Log_array | Out-File -FilePath $CurrentFolder\配布G名変更_Log_$(Get-Date -Format "yyyyMMdd_HHmmss").txt 
}

# Excelを閉じる
$excel.Quit()
# プロセスを解放する
$excel = $null
[GC]::Collect()
# 接続を切断
Disconnect-ExchangeOnline -Confirm:$false

※ 本コードを利用する場合は必ず以下の免責事項をご確認ください。

おまけ

左に行くと、何か良いことありそう。

この記事が気に入ったらサポートをしてみませんか?