チームのアーカイブおよび復元イベントを報告する方法

チームのアーカイブおよび復元イベントを報告する方法

チームのアーカイブおよび復元イベントが発生したときに管理者に知らせる

今週の初めには、ライフサイクルの終了時にチームをアーカイブするトピックと、アーカイブされたチームに共有チャネルまたはプライベートチャネルが含まれている場合に生じる課題について説明しました。避けられない問題は、チーム所有者 (または管理者) がいつチームをアーカイブするかを管理者がどのように知ることができるかということです。管理者がテナント内で何が起こっているかを知っていれば、必要に応じて潜在的な問題を回避するための予防的な措置を講じることができるため、合理的な質問です。

監査ログを調べる

Microsoft 365 ワークロードに関する情報の私の通常の行き先は、誰かがチームをアーカイブまたは復元したときに Teams が監査レコードをキャプチャするかどうかを確認するために、「統一された」監査ログを調べることです。

Teams は、アーカイブ イベントと復元イベントの監査レコードをキャプチャしますが、これらの操作専用のイベントは作成しません。代わりに、Teams は汎用を使用してイベントをキャプチャします。 チーム設定の変更 操作: チーム名の更新など、他のアクションに使用されます。チームのアーカイブの基本的な性質を考えると、Teams が 2 つの操作の特定のイベントを使用して監査イベントを作成するほど重要ではないと考えているのは驚くべきことです。 チームアーカイブ 又は チーム復元.

監査ログの検索 チーム設定の変更 操作は簡単です。監査レコードを見つけたら、次のステップは、 監査データ プロパティを保持し、アーカイブ操作のためにレコードを処理します。チームのアーカイブ・アクションとリストア・アクションを区別するために、監査イベントは値を 新しい値 財産。True の場合、監査レコードはアーカイブ アクション用です。False の場合、アクションによってチームが復元されます。コードはこれらの条件を処理します。

[array]$Records = (Search-UnifiedAuditLog -Operations TeamSettingChanged -StartDate $StartDate -EndDate $EndDate -ResultSize 5000)
ForEach ($Rec in $Records) {
      $AuditData = ConvertFrom-Json $Rec.Auditdata
      If ($AuditData.Name -eq "Team is archived") {  # It's an archival team setting record
        Switch ($AuditData.NewValue) {
         "False"  { $Action = "Restored team" }
         "True" { $Action = "Archived team" }
        } #end switch

チャネル情報の取得

この記事で説明したように、アーカイブされたチームにプライベート チャネルと共有チャネルのどちらが含まれているかを知ることが重要であるため、この情報を取得するにはコードが必要です。アーカイブまたは復元されたチームの表示名が監査レコードにあるため、 ゲットチーム コマンドレットは、チームのグループ識別子を取得し、 チームチャネルを取得 は、チャネル・データを取得できます。スクリプトの目的上、私はさまざまな種類のチャンネルの数にのみ興味がありますが、必要に応じてチャンネル名を出力するのは簡単です。

Write-Host "Checking channels for" $AuditData.TeamName
         $TeamId = (Get-Team -DisplayName $AuditData.TeamName).GroupId
         If ($TeamId) {
            [array]$TeamChannels = Get-TeamChannel -GroupId $TeamId
            [array]$StandardChannels = $TeamChannels | ? {$_.Membershiptype -eq "Standard"}
            [array]$SharedChannels = $TeamChannels | ? {$_.Membershiptype -eq "Shared"}
            [array]$PrivateChannels = $TeamChannels | ? {$_.Membershiptype -eq "Private"}
            $ChannelStatus = "OK" }
         Else {
            $ChannelStatus = "Team might be deleted" }

監査データの出力

その後、監査レコードをスキャンしてデータを出力した結果を報告する必要があります。スクリプトはCSVファイルを作成し、データをパイプで アウトグリッドビュー コマンドレット (図 1) を使用して、監査データを簡単に参照できるようにします。

チームのアーカイブおよび復元イベントの監査データ
図 1: チーム アーカイブ イベントと復元イベントの監査データ

チームのアーカイブまたは復元アクションが発生するたびに Teams が特定の監査レコードを生成する方が簡単ですが、少なくともデータを探したときには利用できます。マイクロソフトが行うことができるもう 1 つの改善点は、Teams または Microsoft Graph PowerShell SDK モジュールからコマンドレットを使用して、または実際にグラフ クエリを使用してチームに関する情報を取得するために必要なため、監査レコードにグループ識別子を含めることです。

コード例は次のとおりです。 GitHub から入手可能.


Office 365 アプリケーションが実際に継続的にどのように機能するかについては、 Office 365 for IT プロフェッショナル 電子ブック。毎月の更新により、Office 365 エコシステム全体で重要な点についてサブスクライバーに通知されます。

未分類

Posted by admin