はじめに
Teamsを運用していると、意図せずパブリックでチームを運用している場合があります。本人も周囲もしばらく気づかないケースも多く、ふとしたときに知らないチームのファイルや更新情報が見えてしまってびっくりすることもあります💪
ということで、管理者としては、パブリックになっているチームを定期的に確認しておくのがおすすめです。組織内とはいえ適切な情報コントロールをこころがけたいですよね。
まずはモジュールをインストール
Install-Module -Name MicrosoftTeams
teams_public_owner.csvを作成する。
Connect-MicrosoftTeams
でTeamsへの接続を確立します。
まず、Get-Team
コマンドを使用して、パブリックなチームの一覧を取得します。
その後、各チームのオーナーを取得し、オーナーのメールアドレスを含むオブジェクトを作成します。
最後に、Export-Csv
コマンドを使用して、カスタムオブジェクトを CSV ファイルにエクスポートします。
- NoTypeInformation パラメータを使用すると、CSV ファイルに型情報が含まれないようになります。
- encoding Default パラメータを使用して、CSV ファイルのエンコーディングを既定値に設定します。これを指定しないと、全角文字が文字化けしてしまいます。
Connect-MicrosoftTeams
$publicTeams = Get-Team | Where-Object { $_.Visibility -eq "Public" }
$teamOwners = @()
foreach ($team in $publicTeams) {
$owners = (Get-TeamUser -GroupId $team.GroupId -Role Owner).User -join ', '
$ownerData = @{
TeamName = $team.DisplayName
OwnerEmail = $owners
}
$teamOwners += New-Object -TypeName PSObject -Property $ownerData
}
$teamOwners | Export-Csv -Path "C:\teams_public_owner.csv" -NoTypeInformation -encoding Default
まとめ
これで任意のフォルダにCSVをダンロードすることができます。あとは、batファイルを作成して、タスクスケジューラーで定期実行するもよし、Power Automateで調理してもよし🤔
@echo off
PowerShell.exe -ExecutionPolicy Bypass -File "C:\path\to\teams_public_owner.ps1"
pause
実運用では、自動メールにしようかと思ったのですが、意図して公開にしているチームもあると思うので、自動にしてしまうと除外設定などめんどくさいなと思ったので、時間が空いたときにポチポチメールしてあげようかなと考えています。