#はじめに
文部科学省の GIGAスクール構想 により、2021年度には多くの学校で Office 365 の利用が開始されます。本記事では、Office 365 をはじめて運用される管理者向けの Tips を紹介します。
#ユーザーの管理
ユーザー登録
Office 365 へのユーザー登録は、Microsoft 365 管理センター や Azure Active Directory の管理画面 から一括登録することができますが、1回に登録できるユーザーは250名までとなっています。従って、10,000名登録したい場合には、250名 x 40 個の登録用データを作成し、順次登録する必要があります。
一方、PowerShell を使用した一括登録では、1回に登録できるユーザーは5,000名までとなっていますので、大人数のユーザーを登録する場合は、PowerShellを使って登録した方が圧倒的に楽です。
Office 365 を管理するための PowerShell モジュール
Office 365 用の PowerShell モジュールには、
- コマンドレッド名に AzureAD が含まれる Graph用 Azure AD PowerShell モジュール
- コマンドレッド名に Msol が含まれる Windows PowerShell 用 Microsoft Azure AD モジュール
の2種類があります。現時点では Graph 用 Azure AD PowerShell モジュールは、 Windows PowerShell 用 Microsoft Azure AD モジュールの機能を完全に補完するものでありませんので要件によって両バージョンを使い分ける必要があります。両バージョンの PowerShell モジュールは同じコンピューターにインストールすることができます。
インストールできるオペレーティングシステム
以下のいずれかの OS がインストールされた端末を用意してください。
なお、用意いただいた端末のOSは、64bitバージョンである必要があります。
- 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
PowerShell モジュールのインストール
Windows の [スタート] を開き、[Windows PowerShell] を管理者権限で開きます。
以下のコマンドを実行します。
Install-Module -Name AzureAD
Install-Module -Name MSOnline
Office 365 への接続
Windows PowerShell 用 Microsoft Azure AD モジュール (MSOnline) を使用して、Office 365 へ接続します。
以下のコマンドを実行します。
Connect-MsolService
サインインの画面が表示されますので、Office 365 の管理者アカウントでログインします。
ライセンス情報の取得
Get-MsolAccountSkuコマンドを実行して、利用できる Office 365 のライセンスを確認します。
Get-MsolAccountSku
AccountSkuId ActiveUnits WarningUnits ConsumedUnits
------------ ----------- ------------ -------------
contoso:M365EDU_A3_STUUSEBNFT 50000 0 100
contoso:STANDARDWOFFPACK_STUDENT 2000000 0 226326
contoso:FLOW_FREE 10000 0 1
contoso:STANDARDWOFFPACK_STUDENT_DEVICE 2656 0 0
contoso:STANDARDWOFFPACK_FACULTY_DEVICE 68 0 0
contoso:TEAMS_EXPLORATORY 100 0 0
contoso:M365EDU_A3_FACULTY 4150 0 2
contoso:STANDARDWOFFPACK_FACULTY 1000000 0 13413
contoso:M365_EDU_GIGA_PROMO 3539 0 0
ユーザー登録用CSVファイルの作成
ユーザー登録用のCSVファイルを作成します。
1行目がラベルで2行目以降に登録するユーザーデータを入力してください。
|UserPrincipalName|DisplayName|Password|FirstName|LastName|JobTitle|City|bisinessPhone|Department|PostalCode|streetAddress|MobilePhone|State|Countory|UsageLocation|AccountSkuId|
|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|
|taro@contoso.ac.jp|山田 太郎||山田|太郎|Student|マイクロソフト中学校|2014|中1|A|バスケットボール||東京|Japan|JP|contoso:STANDARDWOFFPACK_STUDENT|
|hanako@contoso.ac.jp|佐藤 花子||佐藤|花子|Student|マイクロソフト中学校|2014|中1|A|バレーボール||東京|Japan|JP|contoso:STANDARDWOFFPACK_STUDENT|
ラベル名 | 必須 | 説明 |
---|---|---|
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 コマンドで取得したもの) |
◎:必須 | ||
〇:必須ではないが、登録しておくと後々役に立つ | ||
×:必須ではない(未登録でも問題ない) |
Microsoft Excel を使ってファイルを作成している場合には、ファイル保存時に [CSV UTF-8(コンマ区切り)(*.csv)] にして保存すること。
PowerShell によるアカウント一括登録
PowerShellによるアカウント一括登録では一回に登録できるユーザーは5,000名までです。5,000名以上の場合には複数のファイルを用意してください。
以下のコマンドでアカウントの登録を行います。
Connect-MsolService
Import-Csv -Path <Input CSV File Path and Name> | foreach {New-MsolUser -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -Title $_.JobTitle -City $_.City -Office $_.bisinessPhone -Department $_.Department -PostalCode $_.PostalCode -StreetAddress $_.StreetAddress -MobilePhone $_.MobilePhone -State $_.State -Country $_.Country -UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId} | Export-Csv -Path <Output CSV File Path and Name> -Encoding UTF8
アカウント登録用ファイルにパスワードが記載されていない場合には、アカウント登録結果ファイルにパスワードが記載されます。
毎回コマンドを全部入力するのは面倒なので、以下のスクリプトを addo365user1.ps1 ファイルとして作成することで、簡単にアカウント登録することができるようになります。
Connect-MsolService
Import-Csv -Path $Args[0] | foreach {New-MsolUser -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -Title $_.JobTitle -City $_.City -Office $_.bisinessPhone -Department $_.Department -PostalCode $_.PostalCode -StreetAddress $_.StreetAddress -MobilePhone $_.MobilePhone -State $_.State -Country $_.Country -UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId} | Export-Csv -Path $Args[1] -Encoding UTF8
以下のコマンドを実行することでユーザー登録が行えます。
addo365user1-1.ps1 入力ファイル名 出力ファイル名
複数のユーザー登録用ファイルを使って、一気にユーザー登録したい場合には以下のPowerShellを使います。
Input ディレクトリにユーザー登録ファイルを置き、ユーザー登録結果は Output ディレクトリに書き出されます。
Connect-MsolService
Get-ChildItem -Recurse -File .\Input |foreach {New-MsolUser -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -Title $_.JobTitle -City $_.City -Office $_.bisinessPhone -Department $_.Department -PostalCode $_.PostalCode -StreetAddress $_.StreetAddress -MobilePhone $_.MobilePhone -State $_.State -Country $_.Country -UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId} | Export-Csv -Path .\Output\$_ -Encoding UTF8}
カレントディレクトリの下にInput, Outputディレクトリを作成し、Inputディレクトリにユーザー登録用ファイルを置き、addo365user2.ps1 を実行する。
初回ログイン時のパスワード強制変更を無効化する
上記の方法で登録したユーザーは、ユーザーがはじめてログインした際にパスワードの変更が求められます。初回ログイン時の強制パスワード変更を無効にしたい場合には、-ForceChangePassword $false のオプションを追加すればよいです。
Connect-MsolService
Import-Csv -Path $Args[0] | foreach {New-MsolUser -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -Title $_.JobTitle -City $_.City -Office $_.bisinessPhone -Department $_.Department -PostalCode $_.PostalCode -StreetAddress $_.StreetAddress -MobilePhone $_.MobilePhone -State $_.State -Country $_.Country -UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId -ForceChangePassword $false} | Export-Csv -Path $Args[1] -Encoding UTF8
Connect-MsolService
Get-ChildItem -Recurse -File .\Input |foreach {New-MsolUser -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -Title $_.JobTitle -City $_.City -Office $_.bisinessPhone -Department $_.Department -PostalCode $_.PostalCode -StreetAddress $_.StreetAddress -MobilePhone $_.MobilePhone -State $_.State -Country $_.Country -UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId -ForceChangePassword $false} | Export-Csv -Path .\Output\$_ -Encoding UTF8}
数字のみのパスワードを設定したい
Office 365 のパスワードポリシーは
- 下記4種のうち3種を使用する
- A – Z
- a – z
- 0 – 9
- @ # $ % ^ & * – _ ! + = [ ] { } | \ : ‘ , . ? / ` ~ “ ( ) ;
- 8文字以上256文字以内
- 変更したひとつ前のパスワードは利用できない
となっています。数字のみのパスワードを設定したい場合には、-StrongPasswordRequired $false オプションを追加します。
Connect-MsolService
Import-Csv -Path $Args[0] | foreach {New-MsolUser -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -Title $_.JobTitle -City $_.City -Office $_.bisinessPhone -Department $_.Department -PostalCode $_.PostalCode -StreetAddress $_.StreetAddress -MobilePhone $_.MobilePhone -State $_.State -Country $_.Country -UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId -StrongPasswordRequired $false} | Export-Csv -Path $Args[1] -Encoding UTF8
Connect-MsolService
Get-ChildItem -Recurse -File .\Input |foreach {New-MsolUser -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -UserPrincipalName $_.UserPrincipalName -Title $_.JobTitle -City $_.City -Office $_.bisinessPhone -Department $_.Department -PostalCode $_.PostalCode -StreetAddress $_.StreetAddress -MobilePhone $_.MobilePhone -State $_.State -Country $_.Country -UsageLocation $_.UsageLocation -LicenseAssignment $_.AccountSkuId -StrongPasswordRequired $false} | Export-Csv -Path .\Output\$_ -Encoding UTF8}
ユーザー登録情報の取得
Office 365 に登録されているアカウント情報を取得するには以下のコマンドを実行します。
Connect-MsolService
Get-MsolUser -all | Expoert-CSV Export-Csv -Path <Output CSV File Path and Name> -Encoding UTF8
ユーザープロパティの一括変更
既に登録されているユーザープロパティを一括変更したい場合には、Set-MsolUser コマンドを使用します。ここでは、表示名を一括変更するスクリプトに関して紹介します。
表示名を変更するためのCSVファイルを用意します。
UserPrincipalName | DisplayName |
---|---|
taro@contoso.ac.jp | 山田 太郎 |
hanako@contoso.ac.jp | 佐藤 花子 |
表示名を一括変更するスクリプト(chuserpropaty.ps1)を作成します。
Connect-MsolService
Import-Csv -Path $Args[0] | foreach {Set-MsolUser -UserPrincipalName $_.UserPrincipalName -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -Title $_.JobTitle -City $_.City -Office $_.bisinessPhone -Department $_.Department -PostalCode $_.PostalCode -StreetAddress $_.StreetAddress -MobilePhone $_.MobilePhone -State $_.State -Country $_.Country -UsageLocation $_.UsageLocation}
ユーザープロパティを変更するために chuserpropaty.ps1 スクリプトを実行します。
chuserpropaty.ps1 <Input CSV File Path and Name>
パスワードの変更
既に登録されているユーザーのパスワードを変更したい場合には、Set-MsolUserPassword* コマンドを使用します。
Set-MsolUser -UserPrinicpalName ログインアカウント名 -NewPassword パスワード
初回ログイン時のパスワード変更を無効にしたい場合には、-ForceChangePassword $falseオプションを追加します。
Set-MsolUser -UserPrinicpalName ログインアカウント名 -NewPassword パスワード -ForceChangePassword $false
パスワードの一括変更
既に登録されているユーザーのパスワードを一括変更したい場合には、Set-MsolUserPassword コマンドを使用します。
パスワードを変更するためのCSV ファイルを用意します。
UserPrincipalName | DisplayName |
---|---|
taro@contoso.ac.jp | P@ssw0rd0123 |
hanako@contoso.ac.jp | P@ssw0rd4567 |
パスワードを一括変更するスクリプト(chpasswd.ps1)を作成します。
Import-Csv -Path $Args[0] | foreach {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $_.Password}
初回ログイン時のパスワード変更を無効にしたい場合には、-ForceChangePassword $falseオプションを追加します。
Import-Csv -Path $Args[0] | foreach {Set-MsolUserPassword -UserPrincipalName $_.UserPrincipalName -NewPassword $_.Password -ForceChangePassword $false}
パスワードの一括変更を行うために chpasswd2.ps1 スクリプトを実行します。
chpasswd1.ps1 <Input CSV File Path and Name>
ユーザーの一括削除
削除するユーザーのリストを作成します。
UserPrincipalName |
---|
user1@contoso.ac.jp |
user2@contoso.ac.jp |
user3@contoso.ac.jp |
ユーザー一括削除用のスクリプトを作成します。
Import-Csv -Path $Args[0] | foreach {Remove-MsolUser -UserPrincipalName $_.UserPrincipalName -Force}
ユーザー一括削除を行うための deluser1.ps1 スクリプトを実行します。
deluser1.ps1 <Input CSV File Path and Name>
削除されたユーザーはゴミ箱に入り完全には削除されていません。ゴミ箱にいるユーザーは復活させることができます。
ゴミ箱から完全に削除するためのスクリプトは以下になります。
Import-Csv -Path $Args[0] | foreach {Remove-MsolUser -UserPrincipalName $_.UserPrincipalName -RemoveFromRecycleBin}
グループの管理
##動的グループ
Microsoft 365 GIGA PROMO、Microsoft 365 A3、Microsoft 365 A5 のライセンスをお持ちの教育委員会では、ユーザーのプロパティを参照しあるグループに動的にメンバー追加・削除される機能が利用できます。
この機能を使うと例えば**「教員の勤務学校が変わった場合にも、その教員の勤務学校名を変更するだけで新しい学校のチームのメンバーに追加され元の学校のチームから削除されます。」** のでグループの管理が楽になります。
##動的グループの作成
Azure AD の管理画面 にアクセスし、画面左の [グループ] をクリックします。
ここでは例として **「教員のグループ」**を作成します。グループの種類は 「セキュリティ」 を選択し、グループ名に 「教員のグループ」 を入力します。メンバーシップの種類は **「動的ユーザー」**を選択します。
次に、動的なメンバーを決めるためのルールを作成します。**[動的クリエを追加]**をクリックします。
プロパティは 「jobTitle」 を選択し、演算子は 「Equals」 を選択し、値に 「Teacher」 と入力します。最後に [保存] をクリックします。
最後に **[作成]**ボタンをクリックしたら、グループが作成されます。
マイクロソフト中学校に所属する教員のみのグループを作成したい場合には、以下のようなルールを作成してください。
#ライセンスの割り当て
ユーザー作成時にライセンスを割り当てることも可能ですが、ここではグループにライセンスを割り当てる方法を紹介いたします。まずはじめに 「License_Teacher」、**「License_Student」**のグループを先に紹介した動的グループで作成しておきましょう。ユーザー作成時に Title に Teacher もしくは Student を入れている場合には、そのプロパティを使って動的グループを作ることができます。
まずはじめに Azure AD の管理画面 から [ライセンス] を選択します。
割り当てるライセンスを選択して、[+割り当て] をクリックします。