この記事で使用しているMicrosoftTeamsモジュールのバージョンは【6.0.0】を使用してとなります
接続する際の種類
Teamsコマンドである『Connect-MicrosoftTeams』する際にそれぞれ試してみます
引数に何も設定しない
# 引数をなにも設定しない
Connect-MicrosoftTeams
以下画像のようにサインイン画面が表示されるのでそこからアカウントを選択したりして接続します
認証入力画面から認証する
# 認証画面の情報を使用する
Connect-MicrosoftTeams -Credential (Get-Credential)
以下画像のように資格情報を求められるので入力してOKをクリックすると入力した内容で認証を実施します。この際に使用するアカウントに二段階認証がかかっている場合はエラーが発生するので注意してください
あらかじめ認証情報を設定する
$userName = "認証時に使用するメールアドレス"
$passWord = ConvertTo-SecureString -AsPlainText "$userNameのパスワード" -Force
$credential = New-Object System.Management.Automation.PSCredential($userName, $passWord)
Connect-MicrosoftTeams -Credential $credential
上記の方法で使用するアカウントに二段階認証がかかっている場合はエラーが発生するので注意してください
Azure認証(アプリ認証)経由で認証する
Azureアプリケーションの設定等はこれまで何回か紹介しているので省略します。以下の記事を参考にしてください
-
C#・PowerShellで会議室のイベントを取得(アプリケーション版)<準備編> - ナストンのまとめ
以前、業務で会議室の使用状況を取得するツールを作成する必要があり、その際に調べて実装したメモとなります API アクセス ...
続きを読む
必要なAzureアプリのAPI許可は以下のサイトの下のほうにあります
-
Teams PowerShell モジュールでのアプリケーション ベースの認証 - Microsoft Teams | Microsoft Learn
Microsoft Teamsの管理に使用される Teams PowerShell モジュールでのアプリケーション ベー ...
続きを読む
$clientSecret = "クライアントシークレットの値"
$applicationID = "AzureアプリのID"
$tenantID = "テナントID"
$graphtokenBody = @{
Grant_Type = "client_credentials"
Scope = "https://graph.microsoft.com/.default"
Client_Id = $applicationID
Client_Secret = $clientSecret
}
$graphToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantID/oauth2/v2.0/token" -Method POST -Body $graphtokenBody | Select-Object -ExpandProperty Access_Token
$teamstokenBody = @{
Grant_Type = "client_credentials"
Scope = "48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default"
Client_Id = $applicationID
Client_Secret = $clientSecret
}
$teamsToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantID/oauth2/v2.0/token" -Method POST -Body $teamstokenBody | Select-Object -ExpandProperty Access_Token
Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken")
コード内にある【48ac35b8-9aa8-4d74-927d-1f4a14a0b239】の値は必須みたいです
Azure認証(ユーザー認証)経由で認証する
必要なAzureアプリのAPI許可は以下のサイトにあります
-
Connect-MicrosoftTeams (MicrosoftTeamsPowerShell) | Microsoft Learn
The Connect-MicrosoftTeams cmdlet connects to Microsoft Team ...
続きを読む
$applicationID = "AzureアプリのID"
$tenantID = "テナントID"
$clientSecret = "クライアントシークレットの値"
$clientSecret = [Net.WebUtility]::URLEncode($clientSecret)
$userName = "認証に使用するユーザーアドレス"
$passWord = "$userNameのパスワード"
$passWord = [Net.WebUtility]::URLEncode($passWord)
$uri = "https://login.microsoftonline.com/$tenantID/oauth2/v2.0/token"
$body = "client_id=$applicationID&client_secret=$clientSecret&grant_type=password&username=$userName&password=$passWord"
$requestParameters = @{
URI = $uri
Method = "POST"
ContentType = "application/x-www-form-urlencoded"
}
$graphToken = (Invoke-RestMethod @RequestParameters -Body "$body&scope=https://graph.microsoft.com/.default").access_token
$teamsToken = (Invoke-RestMethod @RequestParameters -Body "$body&scope=48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default").access_token
Connect-MicrosoftTeams -AccessTokens @($graphToken, $teamsToken)
上記の方法で使用するアカウントに二段階認証がかかっている場合はエラーが発生するので注意してください
会社紹介
私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています
会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造
この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています
ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します
-
アドバンスド・ソリューション株式会社
アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...
サイトへ移動
-
お問い合わせ | アドバンスド・ソリューション株式会社
お問い合わせはこちら