LoginSignup
13
10

More than 1 year has passed since last update.

GIGAスクール年度更新ハンドブック | Microsoft 365 第2.3版

Last updated at Posted at 2022-02-26

はじめに

本書は GIGAスクール年度更新ハンドブック | Microsoft 365 第1版 の改訂版として、実際の作業手順に則した順序に書き換えたものです。

Microsoft 365 と Windows 端末の年度更新に必要な作業

Microsoft 365 と Windows 端末をご利用の教育機関は、次の年度更新作業が必要となります。

  • 削除するアカウントリストの作成 (システム管理者が作業)
    卒業等により削除しなければいけないアカウントリストを作成します。
  • 初期化する端末リストの作成 (システム管理者が作業)
    削除予定のユーザー(卒業する児童生徒)が使っていた初期化用端末リストを作成します。
  • Windows 端末の年度更新作業 (システム管理者が作業)
    共有PCモードで利用している場合には年度更新作業は必要ありませんが、そうでない場合は初期化する端末リストを使って削除予定のユーザー(卒業する児童生徒)が使っていた Windows 端末を初期化して新規ユーザー(新入生)が端末を使えるようにする必要があります。
  • 卒業する児童生徒のライセンスのはく奪または変更 (システム管理者が作業)
    個人データの移行等の作業がありますので、卒業する児童生徒をすぐには削除できない場合があります。しかし、卒業する児童生徒が使用してたライセンスをはく奪もしくは変更しないと新入生にライセンスを割り当てることができません。
  • 新入生用アカウントの作成とライセンスの付与 (システム管理者が作業)
    新入生のアカウントを作成、必要なライセンスを付与します。
  • 在学生用アカウントのユーザー情報の更新 (システム管理者が作業)
    在学生用アカウントの属性値に学年やクラスなどの情報を入れている場合には、その属性値を更新します。
  • 個人が所有するコンテンツの移行 (児童生徒自身が作業)
    ※移行手順は本書には記載しません。
    アカウントが削除されてしまうとクラウド上にある様々なコンテンツが削除されてしまいますので、個人が所有するストレージ(個人所有のOneDrive、USBメモリ、個人所有のPCなど)にコンテンツを移行します。
  • 卒業する児童生徒のアカウントの削除 (システム管理者が作業)
    削除するアカウントリストを使って、卒業する児童生徒のアカウントを削除します。

PowerShell を使用したアカウント管理の準備

PowerShell を使用したアカウント管理のメリット

Microsoft 365 のアカウント登録は Microsoft 管理センターAzure Active Directory 管理センターから行うこともできますが、大人数のユーザーの登録、削除、更新を行う場合には、PowerShell を利用したほうが格段に楽になります。CUI(Character User Interace)での作業となりますが、慣れると GUI(Graphical User Interface) より格段に楽に作業できますので、これを機会にぜひ取り組んでみてください。

PowerShell を利用するための準備

Microsoft 365 を管理するための PowerShell モジュール

PowerShell で Office 365 を管理するためのモジュールには

  • コマンドレッド名に AzureAD が含まれる Graph 用 Azure AD PowerShell モジュール
  • コマンドレッド名に Msol が含まれる Windows PowerShell 用 Microsoft Azure AD モジュール

モジュールをインストールできるオペレーティングシステム

以下のいずれかの OS がインストールされた端末を用意してください。
なお、用意いただいく端末のOSは 64bitバージョン である必要があります。

  • Windows 11
  • Windows 10
  • Windows 8.1
  • Windows 8
  • Windows 7 Service Pack 1 (SP1)
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows Server 2008 R2 SP1

の2種類があります。現時点では Graph 用 Azure AD PowerShell モジュールは、 Windows PowerShell 用 Microsoft Azure AD モジュールの機能を完全に補完するものでありませんので要件によって両バージョンを使い分ける必要があります。両バージョンの PowerShell モジュールは同じコンピューターにインストールすることができます。

PowerShell モジュールのインストール

Windows の [スタート] を開き、[Windows PowerShell] を管理者権限で開きます。
image.png

image.png

Windows Powershellのコンソール上で次のコマンドを実行し、モジュールをインストールします。

PowerShell
PS> Install-Module AzureADPreview
PS> Install-Module MSOnline

はじめて PSGallery を利用する場合には、次のメッセージが表示されますので、”Y”と入力します。

image.png

インストールされているモジュールの確認

インストールされたモジュールの確認をするには、次のコマンドを実行します。

PowerShell
PS> Get-InstalledModule
出力
Version             Name                           Repository           Description
-------             ----                           ----------           -----------
3.8.0               Az                             PSGallery            Microsoft Azure PowerShell
4.1.0               Az                             PSGallery            Microsoft Azure PowerShell

モジュールのアンインストール

インストールしたモジュールをアンインストールしたい場合には次のコマンドを実行します。

PowerShell
PS> Uninstall-Module MSOnline

PoserShellスクリプトを実行するための環境設定

PowerShell でスクリプトを書いて実行したとき、以下のエラーが表示されてスクリプトが実行できない場合があります。

PowerShell
PS> .\test.ps1
.\test.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル C:\work\test.ps1 を読み込むことができませ
ん。詳細については、「about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 :1 文字:1
+ .\test.ps1
+ ~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) []PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

これは Windows の初期設定では PowerShell のスクリプトの実行が実行ポリシーによって許可されていないことが原因です。次のコマンドを実行して、実行ポリシーを変更します。

PowerShell
PS> PowerShell -ExecutionPolicy Unrestricted

実行ポリシーが変更されたか次のコマンドを実行して確認します。

PowerShell
PS C:\Windows\system32>  PowerShell Get-ExecutionPoliy
Unrestricted

ちなみに実行ポリシーとしては以下の種類があります。

実行ポリシー 署名あり 署名なし/ローカル 署名なし/非ローカル 説明
Restricted x x x すべてのスクリプトの実行を制限 (初期設定)
AllSigned o x x 署名のあるスクリプトのみ実行可能
RemoteSigned o o x ローカル上のスクリプトと非ローカル上の署名のあるスクリプトのみ実行可能
Unrestricted o o すべてのスクリプトが実行可能だが非ローカル上のスクリプトは実行時に許可が必要
Bypass o o o すべてのスクリプトが実行可能

Windows Terminal のインストール

これらから実施する作業を PowerShellコンソールで実行すると日本語が文字化けする場合がありますので、文字化けをおこさない Windows Terminal をインストールします。

Widows Terminal は Microsoft Store からインストールすることができますので、インストールしてください。

image.png

作業ディレクトリの作成

Windows Terminal を起動します。

image.png

次のコマンドを実行して作業ディレクトリを作成します。

PowerShell
PS> cd Documents      # Docuements ディレクトリに移動
PS> mkdir work         # work というディレクトリを作成
PS> cd work            # work ディレクトリに移動
PS> mkdir bin          # Powershell スクリプトを置くディレクトリを作成
PS> mkdir 20220222     # 実際に作業する作業日名のディレクトリを作成
PS> cd 20220222     # 20220222 というディレクトリに移動
PS> pwd                # 現在のカレントディレクトリを確認

    Path
    ----
   c:\Users\hogehoge\Documents\work\20220222

ディレクトリ操作で覚えておきたいコマンドを次に示します。

コマンド 説明
pwd 現在いるディレクトリを表示
dir 現在いるディレクトリにあるファイルやディレクトリを表示
cd (Directory) 指定したディレクトリに移動
cd .. 一つ上のディレクトリに移動
cd c:\Users\admin\work\20200222 指定したディレクトリに移動
cls 画面表示をクリア
rmdir (Directory) 指定したディレクトリを削除
rm (File) 指定したファイルを削除

Microsoft 365 に既に登録されているユーザー情報の取得

削除ユーザーリストを作成する前に、現時点で Microsoft 365 に登録されているユーザーリストを PowerShell を使って取得してみましょう。すでに上記の作業で Windows Terminal を使って作業ディレクトリを作成していることを前提とします。

まずはじめに Connect-MsolService コマンドを使って Microsoft 365 に接続します。

PowerShell
PS> Connect-MsolService      # Microsoft 365 に接続する

サインインの画面が表示されますので、 Microsoft 365 の管理者IDとパスワードを使ってサインインします。

image.png

サインインしたら Get-MsolUser コマンドを使って、現在登録されているユーザー情報を取得します。

PowerShell
PS> Get-MsolUser -all | Export-CSV -Path Alluser-YYYYMMDD.csv -Encoding UTF8

作業ディレクトリにAllUsers-YYYYMMDD.csvというファイルが作成され、現在登録されているユーザー情報が記録されます。

削除するユーザーリストの作成

AllUsers-YYYYMMDD.csv が作成できたら、Excel 等でファイルを開き、削除するユーザーリスト(DeleteUsers-YYYYMMDD.csv)を作成します。

ファイルの書式は、1行目に UserPrincipalName と入力し、2行目以降に削除したいユーザーのUserPrincipalNameを入力し、CSV 形式で DeleteUsers-YYYYMMDD.csv というファイル名で保存してください。

image.png

初期化する端末リストの作成

次に初期する端末リストを作成します。この端末リストを作成するには、削除するユーザーリストを使用します。

PowerShell
PS> Import-CSV -Path DeleteUsers.vsv | foreach{Get-MsolDevice -RegisteredOwnerUpn $_.UserPrincipalName} |Export-csv -Path ResetDevices-YYYYMMDD.csv

カレントディレクトリに初期化する端末リストの CSV ファイル (ResetDevices-YYYYMMDD.csv )が作成されます。

Windows 端末の年度更新作業

なぜ Windows 端末の年度更新作業が必要なのか

Windows 端末にユーザーがログインすると ユーザー毎の データプロファイル が作成されます。

  • データ は具体的にはディスクトップやドキュメント、お気に入りなどを示します。
  • プロファイル は具体的には、ディスクトップの画面の設定や、アプリケーションの設定を示します。

これらのデータやプロファイルは他のユーザーからはアクセスできませんが、残しておくとストレージを消費しますので、そのままにしておくと後から利用するユーザーの使えるストレージ量が少なくなりますので削除しておく必要があります。

C:\Users\ユーザー名 のディレクトリを削除すればよいのですか?

C:\Users\ユーザー名 ディレクトリを削除するだけでは、データは削除されますがプロファイルは削除されません。
PowerShell を使ってデータとプロファイルを同時に削除する方法もありますが、GIGAスクール端末では次に示すいくつかの方法でデータとユーザープロファイルを削除します。

Windows 端末の年度更新作業方法

ユーザーのデータとプロファイルを削除するにはいくつかの方法がありますが、ここでは4つの方法を紹介します。

  • 共有PCモード
    共有PCモードでは、ある条件を設定してその条件を満たした場合に自動的過去のユーザーのデータとプロファイルを削除します。従ってWindows 端末の年度更新作業を実施する必要はございません。
  • Autopilotモード
    Autopilot リセット は、Intune for Education から管理者が一括で端末を初期化できる方法です。工場出荷時の設定へのリセット との違いは削除される情報の範囲が異なります。
  • ローカル Autopilot リセット
    Intune for Education を利用せずに、端末上で Autopilot リセットを実行する方法です。
  • 工場出荷時の設定へのリセット
    Autopilot リセットと同様に Intune for Education から管理者が一括で端末を初期化できる方法です。Autopilot リセットとの違いは削除される情報一覧をご確認ください。

各教育委員会での Windows 端末の利用・運用方法によって、どの年度更新作業が最適化は異なりますので 削除される情報一覧等も確認して最適な方法を選択してください。

image.png
★の数が多い方法の方がお勧めです。

それぞれの初期化方法で削除される情報一覧

それぞれのWindows 端末の年度更新作業で削除される情報一覧を次に示します。

項目 共有PCモード Autopilot リセット 工場出荷時の設定へのリセット
ユーザーが追加したデータ
個人で行った設定
インストールされたアプリ
地域・言語・キーボードの設定
Wi-Fi の設定
プロビジョニングパッケージ
Azure AD への登録状態の維持

共有 PC モードによる年度更新作業なしの PC 環境の設定

共有 PC モードとは

共有 PC モードは 「Windows 10 Anniversary Update (1607)で搭載された機能で、複数のユーザーによるアクセスを想定した設定がされます。
共有 PC モードでは、ディスク容量が少なくなると、アクセス順がもっとも古いアカウントから自動削除されます。またシステム管理者はこの削除を実施するタイミングを指定する閾値を設定したり、ユーザーがログオフ直後に削除するように共有 PC モードを構成できます。共有PCモードの Windows PC では、卒業生が使っていた端末を何も作業せずにそのまま新入生に渡すことができます。

image.png

共有 PCモードでは一定期間非アクティブなユーザーがいた場合、そのユーザーのデータやプロファイルが自動削除されるため、個人データを消しつつ、プロビジョニングパッケージを残した運用(Azure ADへの参加やWi-Fiの設定ずみなど)が可能です。
一方、Windows 端末へのサイン画面で毎回ユーザー名を入力する必要があります。

image.png

Intune for Education による共有 PC モードの設定

共有 PC モードを有効化は Intune for Education から行うことができます。「共有デバイス」→「共有私用のためにデバイスを最適化する」を有効にしてください。
image.png

Microsoft Endpoint Manager による共有 PC モードの詳細設定

共有 PC モードの削除タイミングを指定する閾値の設定は Intune for Education ではできません。閾値の設定を行うには Microsoft Endpoint Manager で行います。
共有 PC モードの構成プロファイルは、"Shared PC policy" です。
image.png
Intune for Education で共有 PC モードを有効化した場合の閾値は次の通りです。
image.png
それぞれの設定値の説明を次に示します。

設定 説明
共有PCモード 一度にユーザー 1 人がデバイスにサインインできるよう、共有使用向けにデバイスを最適化します。[有効にする]で共有PCモードになります。
Guestアカウント サインイン スクリーンにゲスト オプションを作成します。ユーザー資格情報や認証は不要です。使用するたびに新しいローカル アカウントが作成されます。[ドメイン]にするとゲストサインインはできないくなります。
アカウント管理 アカウント管理サービスが共有 PC モードで有効になると、アカウントは自動的に削除されます。削除は、Active Directory、Azure Active Directory、ゲストによって作成されたローカル アカウントに適用されます。アカウント管理は、サインオフ時、およびシステムのメンテナンス期間中に、自動的に実行されます。
アカウントの削除 共有 PC モードでは、ディスク領域が少なくなった場合、およびアカウントの非アクティブ状態が長すぎる場合、サインアウト時にすぐにアカウントを削除するように構成できます。[記憶域スペースのしきい値で]、[記憶域スペースのしきい値と非アクティブなしきい値で]、[ログアウト直後に]の3つから選択できます。この設定はデフォルト設定ではなく[記憶域スペースのしきい値と非アクティブなしきい値で]を選択してください。
削除開始のしきい値(%) アカウント マネージャーは、ディスク/記憶域スペースの合計が構成されたしきい値を下回るとすぐに、キャッシュされたアカウントの削除を開始します。継続的に削除を行ってディスク領域を解放します。アクティブでない状態が一番長く続いているアカウントから最初に削除されます。 (0-100)
削除停止のしきい値(%) アカウント マネージャーは、ディスク/記憶域スペースの合計が構成されたしきい値に到達するとすぐに、キャッシュされたアカウントの削除を停止します。 (0-100)
非アクティブなアカウントのしきい値 サインインせずに連続で何日経過したらアカウントを削除するか。
ローカルストレージ ローカル ストレージがあれば、ユーザーはデバイスのハード ドライブにファイルを保存したり、それを表示したりできます。
電源ポリシー 電源ポリシーでは、電源設定の変更、休止状態のオフ、カバーを閉めることでスリープするなどのすべての電源状態の切り替えのオーバーライドをユーザーが行えないようにします。
スリープ タイムアウト(秒) 非アクティブな状態が何秒続いたら、デバイスがスリープ モードに移行するか。時間を設定しない場合は、デバイスは 60 分後にスリープ状態に移行します。 (0-18000)
PC がスリープから復帰するときにサインインする デバイスがスリープ モードから復帰するときに、ユーザーにパスワードを使ってサインインするよう要求します。
メンテナンス開始時間(午前 0 時からの経過分数)
Windows Update などの自動メンテナンス タスクを実行する時刻です。既定の開始時刻は午前 0 時です (つまり 0 分)。午前 0 時からの分数で新しい開始時刻を入力すると、この設定の開始時刻を調整できます。たとえば、午前 2 時にメンテナンスを開始する場合は、値として 120 を入力します。 (0-1440)
教育ポリシー 学校で使用するデバイスの推奨設定

初期化用デバイスグループの作成

「Autopilotリセット」や「工場出荷時の設定へのリセット」などの方法で一部のWindow 端末を初期化するには、まず初期化するためのデバイスグループを作成し、そのグループに端末を登録する必要がります。

New-MsolGroup コマンドを使って初期化するためのデバイスグループを作成します。

PowerShell
PS> New-MsolGroup -DisplayName "ResetDevices-2021" -Description "2021年度の端末初期化用のデバイスグループ"
出力結果
ObjectId                               DisplayName                GroupType                  Description
--------                               -----------                ---------                  -----------
70d183c7-7f83-42d2-ab61-520767055625   ResetDevices-2021          Security                   2021年度の端末初期化用のデバイスグループ

初期化用デバイスグループへ初期化する端末の登録 (PowerShell 版)

作成したグループに初期化したい端末を登録します。

PowerShell
> Import-CSV -Path ResetDevices-2021.csv | foreach{Add-MsolGroup -GroupObjectId 70d183c7-7f83-42d2-ab61-520767055625 -GroupMemberType User -GroupMemberObjectId $_.UserPrincipalName}

-GroupObjectId の後ろには、New-MsolGroup を実行したときに出力された ObjectId を入れてください。
これで初期化用グループにデバイスが登録されました。

Autopilot リセットによる端末の初期化

Autopilot リセットとは

Autopilot リセットは Intune for Education から行うことができます。

image.png

Autopilot リセットで初期化した場合、プロビジョニングパッケージは削除されず、個人データだけが削除されるため、Azure AD への端末の登録やWi-Fi の設定などを再度行う必要がないため再セットアップが簡単に行えます。
一方、初期展開時に手動でインストールされたアプリがある場合にはそのアプリは削除されるため、再インストールする必要があります。

Autopilot リセットを利用するためには事前に すべての対象デバイスを Autopilot に変換 するように設定しておく必要があります。

すべての対象デバイスを Autopilot に変換 する

  1. Microsoft Endpoint Manager の管理センターにWebブラウザでアクセスします。
    2.画面左ペインの [デバイス]をクリックし、[Windows] をクリックします。
    image.png
  2. [Windows 登録] をクリックし、[デプロイ プロファイル]をクリックします。
    image.png
  3. [すべてのデバイス Windows 10 Autopilot Profile] をクリックします。
    image.png
  4. [プロパティ] をクリックします。
    image.png
  5. [編集] をクリックします。
    image.png
  6. すべてのデバイスを Autopilot に変換する」を[はい]に変更し、[レビューと保存]をクリックします。
    image.png

Intune for Education からの Autopilot リセット

Intune for Education の管理画面から端末を初期化します。手順は次の通りです。

  1. 画面左側のペインの [グループ] を選択し、先ほど作成したグループを選択します。
  2. デバイス名」左横のチェックボタンをクリックし、すべてのデバイスを選択します。
  3. [Autopilot リセット] をクリックし端末を初期化します。

image.png

[注意事項]
2.のすべてのデバイスを選択した場合にも、1ページに表示されているデバイスのみにチェックが入ります。
1ページあたりに表示されるデバイス数は最大2,000なので、初期化するデバイスが2000台以上の場合には複数の削除用グループを作成して、1グループあたり2,000台以下になるようにしてください。

image.png

Intune for Education のバーコードスキャナーを利用した端末の初期化

初期化したい端末が手元にある場合は、WindowsPC に接続されたバーコードスキャナー利用して初期化用デバイスに端末を登録したり、Autopilot リセットを行うことも可能です。

  1. Web ブラウザで Intune for Education の管理画面 にアクセスします。
  2. 画面左ペインの [バーコードスキャナー] をクリックします。
    image.png
  3. [次へ] をクリックします。
    image.png
  4. 「デバイスの選択」の画面で、バーコードスキャナーで端末のシリアル番号を読み込みます。パーコードスキャナーで読み込めない場合は、シリアル番号を直接入力することもできます。
    image.png
  5. 初期化したいすべての端末を読み込んだら [次へ] をクリックします。
    image.png
  6. アクション」の画面では、読み込んだデバイスで実行する操作を選択します。
    image.png
  7. [デバイスをグループに追加] を選択した場合には、グループを選択してください。
    image.png
  8. [オートパイロットのリセット] を選択した場合には、端末を初期化できます。
    image.png
  9. アクション」の画面で [次へ] をクリックし、「確認および送信]の画面に移動し、[配置]ボタンをクリックすると、選択したアクションが実行されます。
    image.png

Autopilot リセット

Autopilot リセットが開始されるとか次のような画面が表示されます。手元の仮想マシン環境ですと約40分かかりました。
image.png
image.png
image.png
image.png
image.png
image.png
image.png

Autopilot リセット後の Windows 端末の設定

※ Provisioning Package を使って OOBE(Out-Of-Box Experience) した端末では、以下のような設定画面は表示されず、Windows のサインインの画面が表示されます。

Autopilot リセットされた端末では、次のような画面が表示されますので、[日本] を選択して、[はい] をクリックします。
image.png
キーボードレイアウトはこちらでよろしいですか?」の画面が表示されたら [Microsoft IME] を選択して、[はい] をクリックします。
image.png
2つめのキーボードレイアウトを追加しますか?」の画面が表示されたら [スキップ] をクリックします。
image.png
「Windows 10 使用許諾契約」の画面が表示されたら、[同意] をクリックします。
image.png
デバイスを職場用にセットアップしています]の画面が表示されます。
image.png
<--「**デバイスのプライバシー設定の選択**」の画面が表示されたら適切にプライバシー設定を行い、[**同意**] をクリックします。-->
<-- ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78535/abc2c6a4-f486-0e16-50a6-e2176f17eb5b.png)-->
成功しました! Windows はセットアップされ、使用する準備ができました。」と表示されたらセットアップが完了です。
<--**※ Provisioning Package を使って OOBE した端末では、上記の設定画面は表示されず、次のような画面が表示されます。**-->
image.png
リターンキーを押すと次の画面が表示されますので、新しい利用者はこの画面で Microsoft 365 のアカウントとパスワードを入力してサインします。
image.png
サインインしない場合は、電源ボタンを選んでシャットダウンしてください。
image.png

ローカル Autopilot リセット

ローカル Autopilot リセットとは

「Autopilotリセットによる端末の初期化」 では、Intune for Education を使用してリモートから端末を初期化する方法を解説しました。この方法はシステム管理者が簡単に端末の初期化を行えるといメリットがありますが、端末に電源が入っていなかったり、インターネットにつながっていなかった場合には、Autopilot リセットの命令が端末に届かないので、すぐには端末は初期化されず、次に端末が起動してインターネットに接続され、Autopilot リセットの命令が届いたときに、端末の初期化が実行されます。したがってどの端末が初期化され、どの端末が初期化されていないのかは、システム管理者がログを見ないとわかりませんので、各学校で端末の初期化状態を確認するのが難しいはずです。

ローカル Autopilot リセット は各端末上で Autopilot リセットを実施できる方法です。標準設定では、ローカル Autopilot リセット は実施できないように設定されていますので、 Intune for Education の設定を変更して ローカル Autopilot リセット を実施できるようにします。

ローカル Autopilot リセットを有効化する

  1. Intune for Education の管理ポータル に Web ブラウザでアクセスします。
  2. 画面左ペインの [グループ] をクリックします。
    image.png
  3. ローカル Autopilot リセットを有効化するデバイスグループを選択します。ここでは一例として [すべてのデバイス] を選択したとして話を進めます。
    image.png
  4. 画面左ペインの [Windows デバイスの設定] をクリックします。
    image.png
  5. 登録」の下に「ローカル Autopilot リセットを有効にする」 という項目がありますので、これを [有効にする] にしてください。
    image.png
  6. 最後に [保存] をクリックします。
    image.png

ローカル Autopilot リセットの実施

  1. Windows サインインの画面で、[Ctrl]キーと[Windows]キーと R を同時に押します。
    image.png
  2. 管理者アカウントのID、パスワードでサインインし、リセットプロセスを開始します。
    image.png

卒業する児童生徒のライセンスのはく奪または変更

卒業する児童生徒のアカウントを削除せずに新入生アカウントを作成した場合、一時的にライセンスが足りなくなる場合があります。しかし、卒業する児童生徒のアカウントからすべてのライセンスをはく奪してしまうと、個人が所有するデータ移行の際にもとのアカウントでサービスにサインインできなくなってしまいます。そこで、ここでは無償で利用できる Office 365 A1 ライセンスのみを使用できるようライセンスの変更を行っていきます。
教育委員会毎に Microsoft 365 の契約は異なりますのでここでは3つのパターンを想定して解説します。

付与されているライセンス ライセンスのはく奪もしくは変更
Microsoft 365 A5 Office 365 A1 にライセンスを変更する
Microsoft 365 A3 Office 365 A1 にライセンスを変更する
Office 365 A1 + Microsoft 365 GIGA PROMO GIGA PROMOライセンスのみをはく奪する

使用しているライセンスの確認

現在 Microsoft 365 のテナントで使用しているライセンスを確認するには、Get-MsolAccoutSku コマンドを使用します。

Windows Terminal からGet-MsolAccoutSku コマンドを実行します。

PowerShell
PS> Get-MsolAccountSKu

以下のようなエラーが出る場合は、Connect-MsolService コマンドを実行して、Microsoft 365 に接続してください。

エラー出力
Get-MsolAccountSku : You must call the Connect-MsolService cmdlet before calling any other cmdlets.
発生場所 行:1 文字:1
+ Get-MsolAccountSku
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [Get-MsolAccountSku], MicrosoftOnlineException
    + FullyQualifiedErrorId : Microsoft.Online.Administration.Automation.MicrosoftOnlineException,Microsoft.Onlin
   e.Administration.Automation.GetAccountSku

実行結果は以下のようになります。
※契約内容によって表示されるライセンス名、ライセンス数は変わってきます。

Get-MsolAccountSKU の実行結果
AccountSkuId                                 ActiveUnits WarningUnits ConsumedUnits
------------                                 ----------- ------------ -------------
contso:M365EDU_A3_STUUSEBNFT                 100000      0            99028
contso:INTUNE_EDU                            458         0            2
contso:ENTERPRISEPACKPLUS_FACULTY            308         0            127
contso:WINDOWS_STORE                         25          0            0
contso:STANDARDWOFFPACK_STUDENT              2000000     0            133161
contso:M365EDU_A5_FACULTY                    300         0            25
contso:FLOW_FREE                             10000       0            1159
contso:STANDARDWOFFPACK_STUDENT_DEVICE       40108       0            0
contso:CCIBOTS_PRIVPREV_VIRAL                10000       0            1
contso:POWERAPPS_VIRAL                       10000       0            1
contso:POWER_BI_STANDARD                     1000000     0            13
contso:STANDARDWOFFPACK_FACULTY_DEVICE       2986        0            0
contso:TEAMS_EXPLORATORY                     0           100          0
contso:M365EDU_A3_FACULTY                    7400        0            7194
contso:STANDARDWOFFPACK_FACULTY              1000000     0            13171
contso:M365_EDU_GIGA_PROMO                   38666       0            38510

GIGAスクールで利用されている主なライセンスは次の通りです。

ライセンス名 説明
テナント名:M365EDU_A5_FACULTY 教職員用 Microsoft 365 A5
テナント名:M365EDU_A5_STUUSEBNFT 児童生徒用 Microsoft 365 A3
テナント名:M365EDU_A3_FACULTY 教職員用 Microsoft 365 A5
テナント名:M365EDU_A3_STUUSEBNFT 児童生徒用 Microsoft 365 A3
テナント名:M365_EDU_GIGA_PROMO Microsoft 365 GIGA PROMO
テナント名:STANDARDWOFFPACK_FACULTY 教職員用 Office 365 A1
テナント名:STANDARDWOFFPACK_STUDENT 教職員用 Office 365 A1

卒業する児童生徒のライセンスのはく奪または変更

卒業する児童生徒のライセンスのはく奪または変更するパターンは3種類あります。

No 付与されているライセンス 変更後のライセンス
1 テナント名:M365EDU_A5_STUUSEBNFT テナント名:STANDARDWOFFPACK_STUDENT
2 テナント名:M365EDU_A3_STUUSEBNFT テナント名:STANDARDWOFFPACK_STUDENT
3 テナント名:STANDARDWOFFPACK_STUDENT+テナント名:M365_EDU_GIGA_PROMO テナント名:STANDARDWOFFPACK_STUDENT

それぞれのパターンでライセンスをはく奪または変更する場合には次のコマンドを実行します。

パターン1
PS> Import-CSV -Path DeleteUsers-YYYYMMDD.csv | foreach{Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLisense "テナント名:M365EDU_A5_STUUSEBNFT" -AddLicenses "テナント名:STANDARDWOFFPACK_STUDENT"}
パターン2
PS> Import-CSV -Path DeleteUsers-YYYYMMDD.csv | foreach{Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLisense "テナント名:M365EDU_A3_STUUSEBNFT" -AddLicenses "テナント名:STANDARDWOFFPACK_STUDENT"}
パターン3
PS> Import-CSV -Path DeleteUsers-YYYYMMDD.csv | foreach{Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLisense "テナント名:M365_EDU_GIGA_PROMO"}

新入生用アカウントの作成とライセンスの付与

ユーザー登録用のCSVファイルの作成

ユーザー登録用のCSVファイル(AddUsers-Input-YYYYMMDD.csv)は、1行目にタイトル、2行目以降に登録するユーザー情報を入力します。1ファイルで登録できるユーザーは1,000名です。1,000名以上登録したい場合には、複数の登録用のファイルを作成します。

登録用CSVファイルの1行目
UserPrincipalName,Password,DisplayName,FirstName,LastName,JobTitle,City,businessPhone,Department,PostalCode,streetAddress,MobilePhone,State,Contry,UsageLocation,AccountSkuLd

登録する情報は次の通りです。

ラベル名 必須 説明
UserPrinipalName Microsoft 365 サービスへのサインインに使用されるアカウント名
DisplayName Microsoft 365 サービスで使用される表示名
Password × パスワードを指定しない場合、ランダムなパスワードがユーザー アカウントに割り当てられます
FirstName ×
LastName ×
JobTitle 職位(例:Student or Teacher)
City 学校名
businessPhone 小学校1年時の入学年度(例:2014)
Department × 学年(例:小1, 中2, 高3)
PostalCode × クラス(A, B, C)
streetAddress × 部活動
MobilePhone × 担当科目(教員の場合)
State × 都道府県
Country × 国名(例:Japan)
UsageLocation "JP"固定
AccountSkuId ライセンス名(Get-MsolAccountSku コマンドで取得したもの)

◎:必須
〇:必須ではないが、登録しておくと後々役に立つ
×:必須ではない(未登録でも問題ない)

ユーザー登録用 PowerShell スクリプトの作成

メモ帳などで次のPowerShellスクリプトを作成してC:\Users\ユーザー名\Documents\work\bin\AddUsers1.ps1 に保存します。

AddUsers1.ps1
Import-CSV -Path $ARGS[0] -Encoding UTF8 |foreach{New-MsolUser -UserPrincipalName $_.UserPrincipalName -City $_.City -Country $_.Country -Department $_.Department -Fax $_.Fax -FirstName $_.FirstName -LastName $_.LastName -MobilePhone $_.MobilePhone -Office $_.Office -PhoneNumber $_.PhoneNumber -PostalCode $_.PostalCode -State $_.State -StreetAddress $_.StreetAddress -Title $_.Title  -UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId} |Export -CSV -Path ARGS[1] -Encoding UTF8

PowerShellスクリプト(AddUsers1.ps1)によるユーザーの登録

AddUsers1.ps1 スクリプトを使用して、ユーザーを登録します。

PowerShell
PS> C:\Users\ユーザー名\Documents\work\bin\AddUsers1.ps1 AddUsers-Input-YYYYMMDD.csv AddUsers-Output-YYYYMMDD.csv
もしくは
PS> ..\bin\AddUsers1.ps1 AddUsers-Input-YYYYMMDD.csv AddUsers-Output-YYYYMMDD.csv

登録用のCSVファイルにパスワードが記載されていない場合には、ユーザー登録結果ファイル(AddUsers-Output-YYYYMMDD.csv)に登録時に自動生成されたパスワードが記録されます。

初回サインイン時のパスワード強制変更を無効化する

AddUser1.ps1スクリプトで作成されたユーザーは初めてサインインした際にパスワード変更が求められます。初回サインイン時の強制パスワード変更を無効化したい場合には、-ForceChangePassword $false オプションを追加します。

AddUsers2.ps1(初回サインイン時の強制パスワード変更を無効化)
Import-CSV -Path ARGS[0] -Encoding UTF8 |foreach{New-MsolUser -UserPrincipalName $_.UserPrincipalName -City $_.City -Country $_.Country -Department $_.Department -Fax $_.Fax -FirstName $_.FirstName -LastName $_.LastName -MobilePhone $_.MobilePhone -Office $_.Office -PhoneNumber $_.PhoneNumber -PostalCode $_.PostalCode -State $_.State -StreetAddress $_.StreetAddress -Title $_.Title  -UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId -ForceChangePassword $false} |Export -CSV -Path ARGS[1] -Encoding UTF8

数字のみのパスワードを設定できるようにする

Microsoft 365 のパスワードポリシーは

  • 下記4種のうち3種を使用する
  • A – Z
  • a – z
  • 0 – 9
  • @ # $ % ^ & * – _ ! + = [ ] { } | \ : ‘ , . ? / ` ~ “ ( ) ;
  • 8文字以上256文字以内
  • 変更したひとつ前のパスワードは利用できない

となっています。数字のみのパスワードを設定できるようにしたい場合には、-StrongPasswordRequired $false オプションを追加します。

AddUsers3.ps1(初回サインイン時の強制パスワード変更を無効化+数字のみのパスワードを可)
Import-CSV -Path ARGS[0] -Encoding UTF8 |foreach{New-MsolUser -UserPrincipalName $_.UserPrincipalName -City $_.City -Country $_.Country -Department $_.Department -Fax $_.Fax -FirstName $_.FirstName -LastName $_.LastName -MobilePhone $_.MobilePhone -Office $_.Office -PhoneNumber $_.PhoneNumber -PostalCode $_.PostalCode -State $_.State -StreetAddress $_.StreetAddress -Title $_.Title  -UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId -ForceChangePassword $false} |Export -CSV -Path ARGS[1] -Encoding UTF8

在学生用アカウントのユーザー情報の更新

在学生用アカウントの属性値に学年やクラスなどの情報を入れている場合には、その属性値を更新する必要があります。更新用のCSVファイルを作成するには、現在登録されているユーザー情報(AllUsers-YYYYMMDD.csv) をコピーして作成するとよいでしょう。

変更したいユーザーのみを抽出し、ModUsers-Input-YYYYMMDD.csv ファイルを作成します。

更新用 PowerShell スクリプトの作成

メモ帳などで次のPowerShellスクリプトを作成してC:\Users\ユーザ名\Documents\work\bin\ModUsers.ps1 に保存します。

ModUsers.ps1
Import-CSV -Path $Args[0] -Encoding UTF8 | foreach-Object {New-MsolUser -UserPrincipalName $_.UserPrincipalName -DisplayName $_.DisplayName -City $_.City -Country $_.Country -Department $_.Department -Fax $_.Fax -FirstName $_.FirstName -LastName $_.LastName -MobilePhone $_.MobilePhone -Office $_.Office -PhoneNumber $_.PhoneNumber -PostalCode $_.PostalCode -State $_.State -StreetAddress $_.StreetAddress -Title $_.Title -UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId} | Export-CSV -Path $Args[1] -Encoding UTF8

PowerShellスクリプト(ModUsers.ps1)によるユーザー情報の更新

次のコマンドを実行してユーザー情報を更新します。

PowerShell
PS> C:\Users\ユーザ名\Documents\work\bin\ModUsers.ps1 ModUsers-Input-YYYYMMDD.csv ModUsers-Output-YYYYMMDD.csv
もしくは
PS> ..\bin\Modusers.ps1 ModUsers-Input-YYYYMMDD.csv ModUsers-Output-YYYYMMDD.csv

ユーザーの削除

ユーザー削除する前にライセンスを削除しよう

ユーザーの削除作業を実施する前にライセンスの削除を実施することで、本来削除してはいけないユーザーを洗い出すことができます。次のコマンドを実施して、削除予定のユーザーの Office 365 A1 ライセンスのはく奪します。

PowerShell
PS> Import-CSV -Path DeleteUsers-YYYYMMDD.csv | foreach{Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLisense "テナント名:M365EDU_A5_STUUSEBNFT}" 

もし本来削除すべきでないユーザーがおり、Office 365 サービスが利用できなくなった場合は、次のコマンドを実施してそのユーザーに再度ライセンスを割り当てます。

PowerShell
PS> Set-MsolUserLicense -UserPrincipalName ライセンスを割り当てたいユーザーのUserPrincipalName -AddLisense "ライセンス名" 

ユーザー削除用 PowerShell スクリプトの作成

メモ帳などで次のPowerShellスクリプトを作成してC:\Users\ユーザー名\Documents\work\bin\DelUsers.ps1 に保存します。

DelUsers.ps1
Import-Csv -Path $ARGS[0] | foreach {Remove-MsolUser -UserPrincipalName $_.UserPrincipalName -Force} | Export-Csv -Path $ARGS[1] -Encoding UTF8

PowerShellスクリプト(DelUsers.ps1)によるユーザーの削除

次のコマンドを実行してユーザーを削除します。

PowerShell
PS> C:\Users\admin\Documents\work\bin\DelUsers.ps1 Delusers-Input-YYYYMMDD.csv Delusers-Output-YYYYMMDD.csv
もしくは
PS> ..\bin\deluser.ps1 Deluser-Input-YYYYMMDD.csv Deluser-Output-YYYYMMDD.csv

このコマンドで削除したユーザーは完全削除はされず、削除済みのユーザーとして Microsoft 365 上に残っています。Azure Active Directory のポータルサイト にアクセスすることで、削除済みのユーザーを確認できます。

image.png

この画面からユーザーを選択し、[完全に削除][ユーザーの復活] ボタンをクリックすることで、ユーザーの完全削除や復活が行えます。完全削除したユーザーは復活できないので注意してください。
削除済みのユーザーは30日後に自動削除されます。削除日はAzure Active Directory のポータルサイトからも確認することができます。

ユーザーの完全削除

Get-MsolUser コマンドを使って削除済みのユーザーのリストを作成します。

PowerShell
PS> Get-MslUser -ReturnDeletedUsers -all | Export-CSV -Path DeletedUsers-Input-YYYYMMDD.csv -Encoding UTF8

完全削除用PowerShell スクリプトの作成

メモ帳などで次のPowerShellスクリプトを作成してC:\Users\ユーザー名\Documents\work\bin\FullDelUsers.ps1 に保存します。

FullDelUsers.ps1
Import-Csv -Path $ARGS[0] | foreach {Remove-MsolUser -UserPrincipalName $_.UserPrincipalName -Force -RemoveFromRecycleBin} | Export-Csv -Path $ARGS[1] -Encoding UTF8

PowerShellスクリプト(FullDelUsers.ps1) によるユーザーの完全削除

FullDelUsers.ps1 スクリプトを使用して、ユーザーを完全削除します。

PowerShell
PS> C:\Users\admin\Documents\work\bin\FullDelUsers.ps1 DeletedUsers-Input-YYYYMMDD.csv DeletedUsers-Output-YYYYMMDD.csv 
または
PS> ..\bin\FullDelUsers.ps1 DeletedUsers-Input-YYYYMMDD.csv DeletedUsers-Output-YYYYMMDD.csv 

おわりに

このドキュメント通りにやってみたがうまく動かない、ドキュメントの誤記を見つけた等がございましたら、筆者宛て nahisaho@microsoft.com にご連絡ください。
いきなり実環境で実施するのは怖いのでデモ環境でハンズオンを実施してほしい場合は、ここから お申し込みください。

トライブルシューティング

ユーザーやグループ(Teamsのチーム)が作成できなくなった時に確認すべきこと

Microsoft 365 を運用しているとユーザーやグループ(Teamsのチーム)が作成できなくなるといった問題が起きることがあります。これはほとんどの場合、テナントに割り当てられていたオブジェクト数をすべて使い切ってしまったことが原因です。一般的にカスタムドメインを登録していないテナントでは5万オブジェクト、カスタムドメインを登録したテナントでは30万オブジェクトまで利用できます。ユーザーやグループを1つ作成すると1オブジェクト消費されます。削除されたユーザーも完全にユーザーを削除していない場合には1オブジェクト消費しています。
現在利用しているテナントでどれくらいオブジェクトを消費しているかは、Graph Explorer を使用して確認することができます。

Graph Explorer による消費オブジェクト数の確認

  1. Webブラウザで Graph Explorer にアクセスします。
  2. Graph Explorer が表示されたら、左ペインの**[Sign in to Graph Explorer]**をクリックし、Microsoft 365 の管理者アカウントでサインインします。
    image.png
  3. バージョンは [beta]を選択し、クエリに "https://graph.microsoft.com/beta/organization?$select=directorySizeQuota" と入力し、[Run query] ボタンをクリックします。
    image.png
  4. 画面下の**「Response preview]**に現在消費しているオブジェクト数とテナントに割り当てられたオブジェクト数数が表示されます。
    image.png

オブジェクト数が足りなくなった場合

オブジェクト数が足りなくなった場合は、Microsoft 365ポータルからオブジェクト数を増やすようサービスリクエストを上げてください。

13
10
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
13
10