マイクロソフトがMicrosoft Teams PowerShell モジュールのバージョン 5 をリリース

マイクロソフトがMicrosoft Teams PowerShell モジュールのバージョン 5 をリリース

取得 CsOnlineUser コマンドレットのメジャー更新プログラム

私は通常、Microsoft Teams PowerShellモジュールの新しいバージョンについて書くことはなく、最近のモジュールの更新をカバーする投稿の更新に限定しています。ただし、メジャーバージョンのリリースはコメントする価値がありますが、これはTeamsモジュールのV5.0の場合です。 PowerShell ギャラリーから入手できます。 (図1)。

V5.0 の Microsoft Teams PowerShell モジュール

Get-CsOnlineUser
図 1: Microsoft Teams PowerShell モジュールの V5.0

過去数回のリリースでは、マイクロソフトは、Teams が Skype for Business コネクタから継承したポリシー管理コマンドレットの “最新化" に集中しました。モダン化とは、コマンドレットを最新の標準に更新して、信頼性と堅牢性を高めることを表す用語です。ザ Get-CsOnlineUser コマンドレットは、V5.0 リリースの焦点です。

Get-CsOnlineUser の使用

Get-CsOnlineUser Teams に対して有効になっているユーザー アカウントの詳細を取得します。このコマンドレットは、Get-MgUser コマンドレットを使用してユーザー アカウントに関する情報を取得するため、アカウントに割り当てられている Teams ポリシーの詳細を表示する必要がある場合にのみ使用します。ザ Get-CsOnlineUser コマンドレットは、アカウントに割り当てられている Teams サービス プランの詳細 (Teams Premium ライセンスを持つアカウントに割り当てられた MCO_VIRTUAL_APPT および TEAMS_WEBINAR サービス プランなど) を返すことができますが、これらは次の方法で取得することもできます。 Get-MgUser.

過去には、-Csオンラインユーザー アカウントを取得する際のパフォーマンスや柔軟性があまりありません。Microsoftは、特にフィルターを使用してアカウントを検索する際のパフォーマンスが向上したと述べています。さらに、新しいフィルター可能なプロパティのセットを使用できます (Alias, City, CompanyName, CompanyName, HostingProvider, UserValidationErrors, OnPremEnterpriseVoiceEnabled, OnPremHostingProvider, OnPremLineURI, OnPremSIPEnabled, SipAddress, SoftDeletionTimestamp, State, Street, TeamsOwnersPolicy, WhenChanged, WhenCreated, FeatureTypes, PreferredDataLocation, そして).

フィルタリングの変更

別の改善点は、次のようなユーザー情報をフェッチする他のコマンドレットとコマンドレットを一致させるためのフィルター処理演算子のサポートです。 Get-ExoMailbox.これはサーバー側のフィルター処理であり、サーバーはフィルターに一致するアイテムのみを返します。アイテムをフェッチしてワークステーションにフィルターを適用するよりも、サーバー側のフィルターを使用してデータを取得する方が高速です (クライアント側のフィルター処理)。

たとえば、この like 演算子の使用が機能するようになりました。

Get-CsOnlineUser -Filter {City -like "*York*"} | Format-Table DisplayName, City

DisplayName   City
-----------   ----
Terry Hegarty New York

以前のバージョンのモジュールでは、次のエラーが生成されます。 Get-CsOnlineUser: フィルター属性 '市区町村’ はサポートされていません.

Get-CsOnlineUser GT (より大きい)、LT (より小さい)、および le (より小さい) 演算子を使用して、文字列プロパティをフィルター処理できるようになりました。たとえば、これは機能します:

Get-CsOnlineUser -Filter {DisplayName -gt "James"} | Sort-Object DisplayName | Format-Table DisplayName, City

DisplayName                             City
-----------                             ----
James Abrahams                          Foxrock
James Ryan                              Foxrock
Jane Sixsmith                           Dublin

contains 演算子で、配列を含むプロパティがサポートされるようになりました。たとえば、次のコマンドは、Teams に対して有効になっているアカウントのセットを返します。

Get-CsOnlineUser -Filter {FeatureTypes -contains "Teams"} | Format-Table DisplayName

ge 演算子は、Teams ポリシーに対するフィルターをサポートしています (以前のバージョンでは、eq 演算子と ne 演算子のみがサポートされています)。

Get-CsOnlineUser -Filter {TeamsFilesPolicy -ge "*NoSP*"} | Format-Table DisplayName, TeamsFilesPolicy

コマンドレットを使用して Teams チャネル ポリシーに対してフィルター処理しようとしましたが、失敗しました。また、他のポリシーに対してフィルタリングするときに一貫性のない結果が表示されました。たとえば、これはアカウントを返しません。

Get-CsOnlineUser -Filter {TeamsMessagingPolicy -ge "B"}

ワイルドカードを追加するといくつかの結果が生成されますが、"Advanced" というポリシーの名前が “B" 以上であることを受け入れるのは困難です。

Get-CsOnlineUser -Filter {TeamsMessagingPolicy -ge "*B*"} | Format-Table DisplayName, TeamsMessagingPolicy

DisplayName                 TeamsMessagingPolicy
-----------                 --------------------
Jane Sixsmith               Advanced
Marc Vigneau                Advanced

興味深いことに、クライアント側のフィルターにも問題があります。

$Users = Get-CsOnlineUser | Where-Object {$_.TeamsMessagingPolicy -ge "B"} | Format-Table DisplayName
Where-Object : Cannot compare "Advanced" because it is not IComparable.
At line:1 char:29

私は Teams PowerShell 開発者によって予期せぬ方法で物事を行っているかもしれませんが、私は PowerShell を使い続けてきたので、物事が期待どおりに機能しないときを知ることができます。フィルターがすべての Teams ポリシーに対して同じように機能するように、いくつかの調整が引き続き必要になる場合があります。

論理的に削除されたユーザー

フィルタリングの変更とは別に、 Get-CsOnlineUser ライセンスの削除後 30 日間のライセンスのないユーザーの詳細を返し、論理的に削除されたユーザー (完全に削除されている Azure AD ごみ箱内のアカウント) を、削除の日時を表示することで示します。 SoftDeletionTimestamp 財産。論理的に削除されたユーザーは、次の方法で見つけることができます。

Get-CsOnlineUser -Filter {SoftDeletionTimestamp -ne $Null} | Format-Table DisplayName, SoftDeletionTimestamp

DisplayName SoftDeletionTimestamp
----------- ---------------------
Ben James   04/03/2023 23:11:41

まだやるべきこと

Get-CsOnlineUser は、管理プロセスを自動化するために多くのスクリプトで使用される重要なコマンドレットです。マイクロソフトが努力を払ったのは良いことです Get-CsOnlineUser コマンドレットは、いくつかの問題がまだ存在する場合でも、より適切に機能します。Microsoft 365モジュールを更新するために使用する更新手順を解読し(または、Exchange Online、SharePoint Online、およびMicrosoft Graph PowerShell SDKも処理する私のスクリプトを使用します)、Microsoft TeamsモジュールのV5.0にアップグレードします。


Office 365 for IT プロフェッショナル チームの作業をサポートするには、 IT プロフェッショナル向け Office 365 電子書籍。お客様のサポートは、Microsoft 365 と Office 365 の変化する世界を追跡、分析、文書化するために必要な時間に対して支払われます。

Office

Posted by admin