0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

第2期GIGAスクールに向けた Microsoft 365 運用管理ガイド | 第3章 アカウント管理

Posted at

第2章 Microsoft 365 ← →第4章 デバイス管理

第3章 アカウント管理

3.1 アカウント管理ツール M365AdminTools

M365AdminToolsの概要

Microsoft 365のアカウント管理は、一般的にMicrosoft 365管理センターを通じて行います。管理センターは GUI (Graphical User Interface) ベースで設計されており、ユーザーフレンドリーなインターフェースを提供します。しかし、大量のアカウントの追加、編集、削除を行う場合、GUIでの操作は効率的ではありません。

そこで、CLI(コマンドラインインターフェース)を使用してアカウントのメンテナンスを行うためのツールとして、M365AdminTools を開発しました。

M365AdminTools は、CSV ファイルを用いて Microsoft 365 のアカウントを効率的に管理するためのスクリプト群です。このツールを使用することで、大量のアカウントを一度に追加、編集、削除することが可能になります。以下に M365AdminTools の主な機能を説明します。

主な機能

  • ライセンス情報の取得
    テナントで使用できるライセンス情報を取得します。
  • ライセンスの付与
    アカウントにライセンスを付与します。
  • ライセンスのはく奪
    アカウントに付与されたライセンスをはく奪します。
  • アカウントリストの取得
    テナントに登録されているアカウントリストを取得します。
  • アカウント登録
    CSVファイルを使用してアカウントの一括登録します。
  • アカウント削除
    CSVファイルを使用してアカウントの削除します。
  • 削除済みのアカウントを削除
    削除済みのアカウントを一括削除します。
  • Temporary Access Pass の発行
    アカウント登録されているユーザーに Temporary Acces Pass を発行します。

PowerShell 7.x のインストール

M365AdminTools を利用するには、PowerShell 7.x が必要です。PowerShell 7.x がインストールされていない場合は、以下の手順に従って PowerShell 7.x をインストールしてください。

  • $PSVersionTable で PowerShell のバージョンを確認します。
    PS> $PSVersionTable
    
    Name                           Value
    ----                           -----
    PSVersion                      5.1.22621.3930
    PSEdition                      Desktop
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
    BuildVersion                   10.0.22621.3930
    CLRVersion                     4.0.30319.42000
    WSManStackVersion              3.0
    PSRemotingProtocolVersion      2.3
    SerializationVersion           1.1.0.1
    
  • 最新のバージョンの PowerShell を検索します。
    PS> winget search Microsoft.PowerShell
    名前               ID                           バージョン ソース
    ------------------------------------------------------------------
    PowerShell         Microsoft.PowerShell         7.4.3.0    winget
    PowerShell Preview Microsoft.PowerShell.Preview 7.5.0.3    winget
    
  • 最新の PowerShell をインストールします。
    PS> winget install --id Microsoft.Powershell --source winget
    
  • インストールが完了すると [スタート] メニューで [PowerShell 7] が選択できるようになります。
    image.png
  • PowerShell 7 を起動して、バージョンを確認します。
    image.png

Microsoft.Graph モジュールのインストール

M365AdminToolsは Microsoft.Graph モジュールを必要としますので、以下の手順に従ってMMicrosoft.Graph モジュールをインストールしてください。

  • まず、PowerShellを起動します。Windowsでは [スタート] メニューから[Windows PowerShell 7] を管理者で起動します。
    image.png
  • PGGallary を信頼できるレポジトリに設定します。初期設定では PSGallery レポジトリは信頼されていないリポジトリして設定されています。Get-PSRepository を実行すると Untrsted と表示されます。
    PS> Get-PSRepository
        
    Name                      InstallationPolicy   SourceLocation
    ----                      ------------------   --------------
    PSGallery                 Untrusted            https://www.powershellgallery.com/api/v2
    
  • このまま Microsoft Graph PowerShell モジュールをインストールすることもできますが警告メッセージが表示されます。警告メッセージを表示させないようにするには、PSGallery の InstallationPolicy を Trusted に変更します。
    PS> Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
    PS> Get-PSRepository
     
    Name                      InstallationPolicy   SourceLocation
    ----                      ------------------   --------------
    PSGallery                 Trusted              https://www.powershellgallery.com/api/v2   
    
  • InstallationPolicy が Trusted に変更されたか確認します。
    PS> Get-PSRepository
        
    Name                      InstallationPolicy   SourceLocation
    ----                      ------------------   --------------
    PSGallery                 Trusted              https://www.powershellgallery.com/api/v2
    
  • Microsoft.Graph モジュール インストールします。
    PS > Install-Module Microsoft.Graph -Scope CurrentUser
    
  • インストールされたかを確認します。
    PS > Get-Module -ListAvailable Microsoft.Graph
     
       Directory: C:\Users\XXXXXXXXX\Documents\PowerShell\Modules
     
    ModuleType Version    PreRelease Name                     PSEdition ExportedCommands
    ---------- -------    ---------- ----                     --------- ----------------
    Manifest   2.19.0     Microsoft.Graph                     Core,Desk
    
  • これにより、Microsoft Graphモジュールが正常にインストールされたことを確認できます。

Microsoft.Graph.Authentication のインストール

  • Microsoft.Graph.Authentication モジュールは、Microsoft Graph API にアクセスするための認証を提供する PowerShell モジュールです。このモジュールを使用することで、Microsoft 365 やその他の Microsoft サービスのデータに安全にアクセスし、操作することができます。後述するクライアントクレデンシャルを使用したスクリプトを使用する場合に必要となるモジュールです。

    PS > Install-Module -Name Microsoft.Graph.Authentication
    

PowerShell の実行ポリシーの変更

Microsoft Graph PowerShellを使用するためには、PowerShellの実行ポリシーを適切に設定する必要があります。以下の手順に従って設定を行います:

  • 実行ポリシーを確認します。
    PS > Get-ExecutionPolicy
    Restricted
    
  • 実行ポリシーが「Restricted」になっている場合、以下のコマンドを使用して「RemoteSigned」または「Unrestricted」に変更します。これにより、リモートで取得したスクリプトも実行可能になります。
    PS > Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  • 変更が反映されていることを確認します。
    Get-ExecutionPolicy
    

Microsoft Graph PowerShell への接続確認

  • インストールと設定が完了したら、Microsoft Graph PowerShellに接続します。以下のコマンドを実行します。

  • このコマンドを実行すると、Microsoft 365アカウントへの認証を求められます。認証が成功すると、Microsoft Graph PowerShellを使用してアカウント管理タスクを実行できるようになります。

    PS> Connect-MgGraph -Scopes "User.ReadWrite.All"
    
    Welcome to Microsoft Graph!
    
    Connected via delegated access using XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX
    Readme: https://aka.ms/graph/sdk/powershell
    SDK Docs: https://aka.ms/graph/sdk/powershell/docs
    API Docs: https://aka.ms/graph/docs 
    
    NOTE: You can use the -NoWelcome parameter to suppress this message.
    

以上で、Microsoft Graph PowerShellを使用したアカウント管理の準備が整いました。

Git のインストール

M365AdminToolsはGitHubで公開されているため、M365AdminToolsをダウンロードするにはGitをインストールする必要があります。以下に、Windows OS への Git のインストール手順を示します。

  • Git for Windowsの公式サイトにアクセスし、「Download」ボタンをクリックしてインストーラーをダウンロードします。
  • ダウンロードしたインストーラーを実行します。
  • インストーラーの指示に従ってインストールを進めます。デフォルトの設定で問題ありませんが、必要に応じて設定を調整してください。
  • インストールが完了したら、「Git Bash」や「Git GUI」などのツールが使用できるようになります。

M365AdminTools のダウンロード

  • PowerShell 7 を起動し、以下のコマンドを実行し、リポジトリをクローンします。
    PS> cd $HOME
    PS> git clone https://github.com/yourusername/M365AdminTools.git
    
  • $HOME/M365AdminTools が作成され、ディレクトリ内にスクリプトが作成されます。
  • PATHの設定を追加するために、setup.ps1を実行します。
    PS> cd $HOME/M365AdminTools
    PS> ./setup.ps1
    
  • PATH が追加されたか確認します。[設定]→[システム]→[バージョン情報]→[システムの詳細設定] をクリックします。
    image.png
  • [環境変数] をクリックします。
    image.png
  • [Path] をクリックします。
    image.png
  • $HOME\Documents\M365AdminTools\scripts が追加されていることを確認します。
    image.png
    ※画面キャプチャーは $HOME\M365AdminTools-work\scripts になっていますが、本来は$HOME\M365AdminTools\scripts です。

シークレットクレデンシャルを使用するための準備

Microsoft Graph PowerShell を使用して Microsoft Graph API にアクセスする際、認証が必要です。認証には、パスワード認証とシークレットクレデンシャルを使った方法の2つがあります。自動化スクリプトやバックグランドジョブで使用する場合にはシークレットクレデンシャルを使った方法を選択する必要があります。
シークレットクレデンシャルは、Entra ID アプリケーションに登録されたクライアントシークレットを使って認証する方法です。以下にシークレットクレデンシャルの作成手順を示します。

  • Entra ID 管理センター にサインインします。
  • 左ナビゲーションペインから [アプリケーション]→[アプリの登録] を選択します。
    image.png
  • [新規登録] をクリックします。
    image.png
  • 「名前」"M365AdminPowerShell" とし、「サポートされているアカウントの種類」[この組織でぃれt九取りの実に含まれるアカウント(Contoso のみ - シングルテナント)] とします。 [登録] をクリックします。
    image.png
  • 次にクライアントシークレットを作成します。 [証明書またはシークレット追加] をクリックします。
    image.png
  • このクライアントシークレットの説明と有効期限を設定し、 [追加] をクリックします。
    image.png
  • クライアントシークレットが作成されます。
    image.png
    IDは後から必要になってきますので必ずメモしておいてください。
    ※ IDは再確認することができませんので、記録し忘れた場合はクライアントシークレットを再作成してください。
  • つづいてAPIのアクセス許可の設定を行います。 [API のアクセス許可] をクリックします。
    image.png
  • [アクセス許可の追加] をクリックし、アクセス権の追加を行っていきます。
    image.png
  • [Microsoft Graph] をクリックします。
    image.png
  • [アプリケーションの許可] をクリックします。
    image.png
  • アクセス許可を要求するAPIを選択します、 [アクセス許可の追加] をクリックします。
    image.png
  • [Contoso に管理者の同意を与えます] をクリックし、 [はい] をクリックします。
    image.png
  • 状態が 「Contoso に付与されました」 になれば設定は完了です。
    image.png

どのAPI を許可すればよいのか

どのAPIを許可すればよいのかは、「Microsoft Graph のアクセス許可のリファレンス」 を参照してください。M365AdminToolsでアクセス許可を必要とする API 一覧を示します。

Action API
ライセンスの確認 Organization.Read.All
ユーザーのプロファイルの読み取り、書き込み User.ReadWrite.All
グループのプロファイルの読み取り、書き込み Group.ReadWrite.All

クライアントシークレットを記入するファイルの作成

  • $HOME\M365AdminToos\scripts\credentials.json.sample を $HOME\M365AdminToos\scripts\credentials.json にコピーします。
    PS> cp $HOME\M365AdminToos\scripts\credentials.json.sample $HOME\M365AdminToos\scripts\credentials.json
    

メモ等で$HOME\M365AdminToos\scripts\credentials.jsonを開き、"your-tenant-id"、"your-client-id"、"your-client-secret" にテナントID、クライアントID,クライアントシークレットを入力します。

作業ディレクトリの作成

$Home\M365AdminTools\work を作成し、作業ディレクトリとします。

PS> mkdir $HOME\M365AdminTools\work
PS> cd $HOME\M365AdminTools\work

ライセンスの確認

  • get-m365-license.ps1 を使用して、テナントで利用できるライセンスを表示します。

     PS> get-m365-license.ps1
     SkuId                                SkuPartNumber
     -----                                -------------
     e97c048c-XXXX-XXXX-XXXX-922fbf07a370 M365EDU_A5_FACULTY
     46c119d4-XXXX-XXXX-XXXX-97c66d3f909e M365EDU_A5_STUDENT
    
  • アカウント作成時にライセンスを付与する場合は、SkuId を登録用CSVファイルに記載します。

登録されているアカウントの確認

  • get-m365-users.ps1 コマンドを使用して、テナントに登録されているアカウント確認します。
    PS> get-m365-users.ps1
    User list exported to RegisteredUsersList_20240717_055307.csv
    
  • 標準では RegisteredUsersList_YYYYMMDD_HHMMSS.csv ファイルが作成されます。
  • 出力ファイル名を指定したい場合は、-Outputfile オプションを使用します。
    PS> get-m365-users.ps1 -Outputfile users.csv
    
  • 出力されるCSVは

アカウントを登録する

  • アカウント登録用のCSVファイルを作成します。
    image.png
  • 1行目にはタイトルを入れます。
    UserPrincipalName,Password,DisplayName,GivenName,SurName,JobTitle,EmployeeId,EmployeeType,Department,City,State,Country,StreetAddress,PostalCode,SkuId1,SkuId2,SkuId3
    
  • 必須のプロパティは UserPrincipalNameDisplayName です。それ以外は空白でも問題ありません。
  • Password が空白の場合は、12桁のパスワードを自動生成します。
  • SkuId1~SkuId3get-m365-license.ps1z で取得した SkuId を記載します。
  • add-m365-users.ps1 コマンドを使用して、アカウントを登録します。
    PS>  add-m365-users.ps1 -InputFile .\UserRegistration.csv
    Registering users
    User created: stu001@XXXXXXXXXXXXX.onmicrosoft.com
    User created: stu002@XXXXXXXXXXXXX.onmicrosoft.com
    User created: stu003@XXXXXXXXXXXXX.onmicrosoft.com
    User created: stu004@XXXXXXXXXXXXX.onmicrosoft.com
    User created: stu005@XXXXXXXXXXXXX.onmicrosoft.com
    Assigning licenses to users
    Licenses assined to user: stu001@XXXXXXXXXXXXX.onmicrosoft.com
    Licenses assined to user: stu002@XXXXXXXXXXXXX.onmicrosoft.com
    Licenses assined to user: stu003@XXXXXXXXXXXXX.onmicrosoft.com
    Licenses assined to user: stu004@XXXXXXXXXXXXX.onmicrosoft.com
    Licenses assined to user: stu005@XXXXXXXXXXXXX.onmicrosoft.com
    
    User creation details exported to AddedUsersList_20240717_061713.csv with UTF8 BOM encoding
    Completed
    
  • 標準では AddedUsersList_YYYYMMDD_HHMMSS.csv ファイルが作成されます。
  • 出力ファイル名を指定したい場合は、-Outputfile オプションを使用します。
    PS> add-m365-users.ps1 -Inputfile <inputfile> -Outputfile <outputfile>
    

アカウントを削除する

  • アカウント削除用のCSVファイルを作成します。1行目がタイトル。2行目以降に削除するユーザーのUserPrincipalName を記載します。
    remove-users.csv
    UserPrincipalName
    stu001@XXXXXXXXXXXXX.onmicrosoft.com
    stu002@XXXXXXXXXXXXX.onmicrosoft.com
    stu003@XXXXXXXXXXXXX.onmicrosoft.com
    
  • remove-m365-users.ps1 コマンドを使用してアカウントを削除します。
    PS> remove-m365-users.ps1 -InputFile <inputfile>
    Removing users
    User removed: stu001@M365EDU574778.onmicrosoft.com
    User removed: stu002@M365EDU574778.onmicrosoft.com
    User removed: stu003@M365EDU574778.onmicrosoft.com
    User removed: stu004@M365EDU574778.onmicrosoft.com
    User removed: stu005@M365EDU574778.onmicrosoft.com
    
    User deletion details exported to RemovedUsers_20240717_064307.csv
    Completed
    
  • 標準では RemovedUsers_YYYYMMDD_HHMMSS.csv ファイルが作成されます。
  • 出力ファイル名を指定したい場合は、-Outputfile オプションを使用します。
    PS> remove-m365-users.ps1 -InputFile <inputfile> -Outputfile <outputfile>
    

削除済みのアカウントを完全削除する

  • cleanup-m365-deleated-users.ps1 コマンドは削除済みのアカウントを完全に削除します。
  • cleanup-m365-deleated-users.ps1 コマンドで削除したユーザーは復活させることはできません。
    PS> cleanup-m365-deleated-users.ps1
    

Temporary Access Pass (TAP) の発行

  • TAP を発行するアカウントリストを作成します。1行目がタイトル。2行目以降に削除するユーザーのUserPrincipalName を記載します。
    tap-users.csv
    UserPrincipalName
    stu001@XXXXXXXXXXXXX.onmicrosoft.com
    stu002@XXXXXXXXXXXXX.onmicrosoft.com
    stu003@XXXXXXXXXXXXX.onmicrosoft.com
    
  • create-m365-tap.ps1 コマンドを使用して、TAP を発行します。
    PS> create-m365-tap.ps1 -InputFile <inputfile>
    Created user and issued Temporary Access Pass: stu001@M365EDU574778.onmicrosoft.com
    Created user and issued Temporary Access Pass: stu002@M365EDU574778.onmicrosoft.com
    Created user and issued Temporary Access Pass: stu003@M365EDU574778.onmicrosoft.com
    Created user and issued Temporary Access Pass: stu004@M365EDU574778.onmicrosoft.com
    Created user and issued Temporary Access Pass: stu005@M365EDU574778.onmicrosoft.com
    
    User creation details exported to .\UserCreationDetails_20240717_071946.csv with UTF8 BOM encoding
    Completed
    
  • 標準では UserCreationDetails_YYYYMMDD_HHMMSS.csv ファイルが作成されます。
  • 出力ファイル名を指定したい場合は、-Outputfile オプションを使用します。

Temporary Access Pass とは

Temporary Access Pass (TAP) は、Entra ID (おいて、一時的な認証手段として利用できるパスコードです。本書では Windows Hello の設定を行う際に、SMS認証ではなく、TAP を利用して設定を行う方法を紹介します。

第2章 Microsoft 365 ← →第4章 デバイス管理

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?