サイトアイコン Googleスプレッドシート 完全攻略

Microsoft365 ユーザー生成とグループ登録をCSVファイルで一括で行う

Microsoft365の一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回は、「Microsoft Graph PowerShell SDK」を使用して
パスコードの変更や、ユーザーの表示名を一括で行いました。

今回は、ユーザーの生成およびグループへの登録をCSVファイルを使用して
一括で行います。

これは、ずーっとやりたかったのですが、何よりPowershellの文法自体がわからず
二の足を踏んでいました。

しかしながら、PowerShell自体のスタディを行いバッチリの状態で
望みました。

基本的には、Copilotで結構いい感じでスクリプトを吐き出してくれました。

 

ユーザの生成とグループへの登録

 

環境構築

Powershellの起動

Microsoft365 パスコード、表示名のCSVファイルによる一括変更(Microsoft Graph SDK)
前回は、Microsoft365のパスコードを 一括で変更する方法についてお伝えしました。 しかしながら、最近(2025年5月)コマンドがエラーなるようになってしまいました。 PS C:\Windows\System32> Connect-...

Microsoft Graph SDKのインストール

Microsoft365 パスコード、表示名のCSVファイルによる一括変更(Microsoft Graph SDK)
前回は、Microsoft365のパスコードを 一括で変更する方法についてお伝えしました。 しかしながら、最近(2025年5月)コマンドがエラーなるようになってしまいました。 PS C:\Windows\System32> Connect-...

 

Microsoft Graphに接続

Microsoft365 パスコード、表示名のCSVファイルによる一括変更(Microsoft Graph SDK)
前回は、Microsoft365のパスコードを 一括で変更する方法についてお伝えしました。 しかしながら、最近(2025年5月)コマンドがエラーなるようになってしまいました。 PS C:\Windows\System32> Connect-...

ユーザー生成

登録するファイル

C:\temp\user.csv

UserPrincipalName,DisplayName,Password
test009@joyoedu.onmicrosoft.com,九太郎,pass1234
test010@joyoedu.onmicrosoft.com,銃太郎,pass1234

 

スクリプト

#ユーザーを作成

Import-Csv ".\user.csv" | ForEach-Object {
  $userParams = @{
    AccountEnabled = $true
    DisplayName = $_.DisplayName
    MailNickname = ($_.UserPrincipalName -split "@")[0]
    UserPrincipalName = $_.UserPrincipalName
    PasswordProfile = @{
      Password = $_.Password
      ForceChangePasswordNextSignIn = $false
    }
    UsageLocation = "JP"
  }
}

グループへの追加

グループ名に該当するIDを取得する必要あり

グループIDの取得方法

Get-MgGroup -All > group.txt

これで「group.txt」にすべてのグループIDが出力されます。

こんな感じ

DisplayName             Id                                   MailNickname           Description                                                              

———–             —                                   ————           ———–                                                              

MS                      0043xxxx-4fe8-4373-bbba-3e17xx073e21 MS                     MS              

 

スクリプト

例)

カレントフォルダの「user.csv」を元にユーザーを作成 グループ1とグループ2に追加




# グループ1 IDを指定(対象のグループのObject ID)
$groupId = "XXXX8c43-8e66-479d-8c28-18e8227c7568"    #1つ目のグループID

# グループ2 2個目のグループID
$groupId2 = "XXXXeea7-8d17-471b-857e-5ed7b1d80d80"    #2つ目のグループID


#ユーザーを作成しグループに追加
Import-Csv ".\user.csv" | ForEach-Object {
    $userParams = @{
        AccountEnabled = $true
        DisplayName = $_.DisplayName
        MailNickname = ($_.UserPrincipalName -split "@")[0]
        UserPrincipalName = $_.UserPrincipalName
        PasswordProfile = @{
            Password = $_.Password
            ForceChangePasswordNextSignIn = $false
        }
        UsageLocation = "JP"
    }
    $user = New-MgUser @userParams
    $upn = $_.UserPrincipalName

    try {
       write-output $user
       # 1つめのグループに追加
       New-MgGroupMember -GroupId $groupId -DirectoryObjectId $user.Id
       $group = Get-MgGroup -GroupId $groupId
       $getdisplayname =  $group.DisplayName
       Write-Host "✅ $upn を $getdisplayname に追加しました"
 
       # 2つめのグループに追加
       New-MgGroupMember -GroupId $groupId2 -DirectoryObjectId $user.Id
       $group = Get-MgGroup -GroupId $groupId2
       $getdisplayname =  $group.DisplayName
       Write-Host "✅ $upn を $getdisplayname に追加しました"
   }
    catch {
        Write-Warning "⚠️ $upn の処理中にエラーが発生しました: $_"
    }
}

 

Powershellの主なコマンド

コメント

$   変数

 $_.  CSVファイルから読み込んだ値

             例)        
$upn = $_.UserPrincipalName   #CSVファイルの「UserPrincipalName」の要素を変数 $upn に格納

 

 

最後までご覧いただきありがとうございます。

つぎはこちら

Microsoft365 パスコード、表示名のCSVファイルによる一括変更
今回は、Microsoft365のパスコードを 一括で変更する方法についてお伝えします。 数件変更するだけであれば、Azureを使用 すればいいのですが、大量に変更する必要が ありそうなので調べました。 結論としてCSVファイルを作って ち...

Microsoft365の一覧

モバイルバージョンを終了