wiprog

C# とか,数学とか,社会とか.

東京理科大の学科 teams をすばやくつくる

背景

大学のキャンパス閉鎖で登校ができないなか,新入生は twitter や LINE 等のツールでつながり,助け合うことでなんとか乗り切ろうとしています. ただし twitter は SNS であり,グループでのコミュニケーションに向かないこと, LINE グループはプライベートなアカウントを 1 件ずつ招待する必要があり,すでにメンバーとなっている学生に接触できた学生のみが参加でき,オープンでないこと,その他機能面の問題があります.

機能面ですぐれた代替として提案されるのが Slack ですが,理科大の場合は Slack アカウントが支給されているわけではないので, 結局は全員が個別にアカウントを登録し,個別に workspace に招待する必要があり,非常に手間がかかります. また,無料版では致命的ではないにせよ機能の制限があるのもネックです.

そこで,理学部第二部数学科の新入生は Microsoft Teams を活用し,全員を一括でチームに追加することにしました(というか僕が勝手にやりました). Teams を使うことの利点は下記です.

  • 多くの企業に導入されておりユーザ数が多い (DAU は Slack の 4 倍です)
  • Microsoft が開発しているため,開発基盤が安定している. Microsoft には世界トップレベルの技術者がわんさかいます.
  • 理科大の Office365 に含まれており,すでに全員のアカウントが存在しており,追加で課金する必要もない
  • 理科大は Office へのログインに MFA を利用しており,セキュリティ的にも安心できる
  • エンジニア向けのツールではないため,コンピュータにくわしくない学生にもやさしい

ただし僕は根性がないので,1人ずつメールアドレスを調べて手動でチームに招待する,というのを,自分以外の新入生 118 人に対して行うのは無理がありました.そこで, powershell スクリプトを使って全員の学籍番号を自動生成し,一括で招待することにしました.

手順

他の学科や他の大学でも参考になると思いますので,ここに手順を書いておきます.環境は windows 10 です. (linux の powershell ではログインがうまくできませんでした)

1. powershell ツールのインストール

ここからは powershell 上での操作になります. ある程度コマンドライン操作に習熟している必要があります. powershell を開いて,下記コマンドを実行します.メッセージが出ますが Y を入力してください. これで, Microsoft Teams 関連のコマンドレットがインストールされます.

Install-Package -Name MicrosoftTeams    

インストールが終わったら, Get-Command -Module Microsoft-Teams を実行して,インストールされたコマンドを確認します. 正常にインストールされていると,次のような出力が得られます.

> Get-Command -Module MicrosoftTeams

CommandType     Name                                               Version
-----------     ----                                               -------
Function        Get-CsBatchPolicyAssignmentOperation               1.0.6
Function        Get-CsUserPolicyAssignment                         1.0.6
Function        New-CsBatchPolicyAssignmentOperation               1.0.6
Cmdlet          Add-TeamUser                                       1.0.6
Cmdlet          Connect-MicrosoftTeams                             1.0.6
Cmdlet          Disconnect-MicrosoftTeams                          1.0.6
Cmdlet          Get-CsPolicyPackage                                1.0.6
Cmdlet          Get-CsUserPolicyPackage                            1.0.6
Cmdlet          Get-CsUserPolicyPackageRecommendation              1.0.6
Cmdlet          Get-Team                                           1.0.6
Cmdlet          Get-TeamChannel                                    1.0.6
Cmdlet          Get-TeamsApp                                       1.0.6
Cmdlet          Get-TeamUser                                       1.0.6
Cmdlet          Grant-CsUserPolicyPackage                          1.0.6
Cmdlet          New-CsBatchPolicyPackageAssignmentOperation        1.0.6
Cmdlet          New-Team                                           1.0.6
Cmdlet          New-TeamChannel                                    1.0.6
Cmdlet          New-TeamsApp                                       1.0.6
Cmdlet          Remove-Team                                        1.0.6
Cmdlet          Remove-TeamChannel                                 1.0.6
Cmdlet          Remove-TeamsApp                                    1.0.6
Cmdlet          Remove-TeamUser                                    1.0.6
Cmdlet          Set-Team                                           1.0.6
Cmdlet          Set-TeamArchivedState                              1.0.6
Cmdlet          Set-TeamChannel                                    1.0.6
Cmdlet          Set-TeamsApp                                       1.0.6

2. ログイン

powershell から teams を操作するには,まずログインする必要があります. ログインといってもブラウザ上での操作ではなく, Connect-MicrosoftTeams コマンドを使います. Connect-MicrosoftTeams と入力して enter を押します. すると,ログインするためのウィンドウが開くので,そこにメールアドレスやパスワード,MFA のコードを入力してログインします. 成功すると, powershell ウィンドウに下記のような表示があるはずです.

> Connect-MicrosoftTeams


Account      : xxxxx@ed.tus.ac.jp
Environment  : AzureCloud
Tenant       : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
TenantId     : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
TenantDomain : tusedu.onmicrosoft.com

3. チームを作成する

New-Team コマンドでチームを作成します. New-Team と実行するといろいろと聞かれるのでそのとおりに入力します. 例:

> New-Team

コマンド パイプライン位置 1 のコマンドレット New-Team
次のパラメーターに値を指定してください:
DisplayName: 2部数学科2020入学
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 2部数学科2020入学  Private     False

ここで,最後の行の左側に表示される長い ID を GroupId といいます. GroupId は今後の操作で必要になりますので控えておいてください.

4. チームに全員を追加

ここでは,学籍番号が連番であることを利用して一括でチームに全員を追加します. 必要な情報は下記ですので事前に準備してください. また,学籍番号が範囲に含まれるユーザはすべて追加されることに注意してください.

  • 追加したい最小の学籍番号 ...(1)
  • 追加したい最大の学籍番号 ...(2)
  • GroupId ...(3)

(1) と (2) の間の学籍番号がすべて存在していなければなりません. 複数の断片化した範囲が対象の場合は,下記の手順も複数回行ってください.

チームメンバーの追加

チームにメンバーを追加するには, Add-TeamUser コマンドを使います. Add-TeamUser -GroupId (3) -User "2120000@ed.tus.ac.jp" のようにすると,学籍番号 2120000 のユーザがチームに追加されます.

これを何十回も手動で実行するのは骨が折れるので,下記のようにループを使って一気に実行します. (1), (2), (3) に適当な値を入れて実行してください.

for ($i = (1); $i -le (2); $i++)
{
 Add-TeamUser -GroupId (3) -User "${i}@ed.tus.ac.jp"
}

5. 全員にお知らせメールを送る

何の連絡もなくチームに追加しただけでは,使ってもらえないかもしれません. 周知するために全員にメールを送ります.

このとき,全員分のメールアドレスも自動で生成しましょう.

for ($i = (1); $i -le (2); $i++)
{
  $addresses += "${i}@ed.tus.ac.jp; "
}

これによって, $addresses にセミコロン区切りの全員のメールアドレスが格納されますので, $addresses と打って enter を押すと評価されて生成されたメールアドレスが取得できます. これをコピーして outlook の宛先欄に貼り付けると,全員を宛先にしたメールを作成できます.

あとは挨拶文を書くなり, teams の紹介を書いたりして,メールを送信しましょう.