M365関連 プログラム 技術

PowerShellのTeamsコマンドの接続時のやり方

この記事で使用している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で会議室のイベントを取得(アプリケーション版)<準備編> - ナストンのまとめ
C#・PowerShellで会議室のイベントを取得(アプリケーション版)<準備編> - ナストンのまとめ

以前、業務で会議室の使用状況を取得するツールを作成する必要があり、その際に調べて実装したメモとなります API アクセス ...

続きを読む

必要なAzureアプリのAPI許可は以下のサイトの下のほうにあります

MSサイト
Teams PowerShell モジュールでのアプリケーション ベースの認証 - Microsoft Teams | Microsoft Learn
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許可は以下のサイトにあります

MSサイト
Connect-MicrosoftTeams (MicrosoftTeamsPowerShell) | Microsoft Learn
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製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...

サイトへ移動

お問い合わせ
お問い合わせ  | アドバンスド・ソリューション株式会社
お問い合わせ | アドバンスド・ソリューション株式会社

お問い合わせはこちら

-M365関連, プログラム, 技術
-, ,