重要なポリシー コマンドレットのための Teams PowerShell アップグレード

重要なポリシー コマンドレットのための Teams PowerShell アップグレード

Azure オートメーション ランブックでチームのポリシーの割り当てが可能になりました

マイクロソフトは、11月1日にMicrosoftTeams PowerShellモジュールの新しいバージョン(4.9)をリリースしました。このモジュールで行われた変更の 1 つは、WinRM コンポーネントに依存しないように、4 つのポリシー管理および割り当てコマンドレット セットをアップグレードすることです。ポリシーには、Teams 会議ポリシーとメッセージング ポリシーが含まれ、そのうちの 2 つは最も重要で頻繁に使用されます。他の 2 つは、Teams フィードバック ポリシーと Teams ボイスメール ポリシーです。

Teams PowerShell コマンドレットの多くはグラフ ベースですが、Teams 開発者は、Skype for Business Online コネクタから継承された古いポリシー管理コマンドレットを最新化しています。モダン化すると、コマンドレットは Azure Automation (この記事では、Azure Automation で Teams PowerShell を使用する概念について説明します。).Teams で Azure Automation を使用する場合は、認証に使用されるサービス プリンシパルに必要なアクセス許可があることを確認してください。

Teams ポリシーの割り当ての確認

明らかに、Teams PowerShell コマンドレットが Azure Automation をサポートすることは良いことですが、Azure Automation ランブックでこれらのコマンドレットを使用しますか?ユーザーアカウントへのTeamsポリシーの一括割り当てのようなものにAzureAutomationを使用するとは思いません。Teams には、既に独自の一括割り当てメカニズムがあります。

新しい機能は、アカウントに対して実行される定期的なチェックで使用される可能性が高く、適切なポリシーが割り当てられていることを確認します。Teams ポリシーの数を考えると、不適切または誤った割り当てを見逃しやすいため、適切な割り当てが配置されていることを確認するために定期的にスケジュールされたジョブを用意することをお勧めします。Teams Premiumライセンスの出現により、これらの高価なアドオン($ 10 /ユーザー/月)が適切なアカウントに付与されていることを確認する方法でもあります。

例 – IT 部門メンバーに対する Teams ポリシーの割り当て

簡単な例を挙げると、特定の会議ポリシーとメッセージング ポリシーを IT 部門のメンバーに割り当てるとします。運用手順書の概念は単純です。

  • 処理するユーザーを検索します。
  • ポリシーを付与します。

Get-CsOnlineUser Teams モジュールのコマンドレットはまだ最新化されていないため、Azure オートメーションでは使用できません。代わりに、Microsoft Graph PowerShell SDK または Exchange Online 管理モジュールのコマンドレットを使用して、ターゲット アカウントを見つけることができます。部門に基づいてユーザーをフィルタリングしたいので、 受信者の取得 コマンドレット。

Grant-CsTeamsMeetingPolicy そして Grant-CsTeamsMessagingPolicy は、ターゲット アカウントにポリシーを割り当てるために必要な 2 つのコマンドレットです。不幸なことに、コマンドレットは Azure Automation ランブックでは機能しますが、認証にマネージド ID を使用する場合は機能しないことがわかりました。プラン B が正式に実行され、Azure Key Vault からバックグラウンド処理に使用されるアカウントの資格情報を取得することに戻り、代わりにそれらの資格情報を使用して Teams に接続しました。一夜にして完璧を期待することはできないと思います。

完全なコードは次のとおりです。

# Connect to AzAccount to access Key Vault to fetch variables used by the script
$AzConnection = Connect-AzAccount -Identity | Out-Null
# Get username and password from Key Vault
$UserName = Get-AzKeyVaultSecret -VaultName "xxxxxx" -Name "AccountName" -AsPlainText
$UserPassword = Get-AzKeyVaultSecret -VaultName "xxxxxx" -name "AccountPassword" -AsPlainText
# Create credentials object from the username and password
[securestring]$SecurePassword = ConvertTo-SecureString $UserPassword -AsPlainText -Force
[pscredential]$UserCredentials = New-Object System.Management.Automation.PSCredential ($UserName, $SecurePassword)
Connect-MicrosoftTeams -Credential $UserCredentials
Connect-ExchangeOnline -ManagedIdentity -Organization office365itpros.onmicrosoft.com
[Array]$Users = Get-Recipient -RecipientTypeDetails UserMailbox -Filter {Department -eq 'IT'}
$Users | Format-Table DisplayName, WindowsLiveId -AutoSize
ForEach ($User in $Users) {
   Write-Output ("Processing {0} with UPN {1} to assign IT messaging and meeting policies to account" -f $User.DisplayName, $User.WindowsLiveId)
   Grant-CsTeamsMessagingPolicy -Identity $User.WindowsLiveId -Policy 'Advanced' -ErrorAction SilentlyContinue
   Grant-CsTeamsMeetingPolicy -Identity $User.WindowsLiveId -Policy 'IT Department Meeting Policy' -ErrorAction SilentlyContinue
}

図 1 は、テスト実行の出力を示しています。これは、 書き込み-出力 コマンドレットが機能しました!

Azure オートメーションでのチーム ポリシーの割り当ての更新
図 1: Azure オートメーションでのチームのポリシー割り当ての更新

この運用手順書を運用可能にするには、運用手順書を発行し、運用手順書を Azure 自動化スケジュールにリンクして、適切と思われる期間に基づいて実行されるようにする必要があります。毎月は良い考えのようです。

このような退屈で反復的だが価値のあるチェックが行われることを確認することは、Azure Automation が非常に役立つ良い例です。もちろん、月に一度は対話的にスクリプトを実行することもできますが、それを行うことを忘れないでください、そしてそれはより本質的な(そして興味深い)作業によって中断される可能性が高いタスクであるため、完了しない可能性があります。

前方へのインチング

マイクロソフトは、Teams PowerShell モジュールを徐々に最新化しています。更新のたびに、運用自動化の新しい可能性が浮かび上がります。この例では、ユーザー アカウントに適切な Teams メッセージングおよび会議ポリシーがあることを確認しています。私はあなたが他の例を思い付くことができると確信しています。


Microsoft 365 テナント管理者が利用できるデータを活用する方法については、 IT プロフェッショナル向け Office 365 電子書籍。私たちは物事がどのように機能するかを理解するのが大好きです。

未分類

Posted by admin