今回はテナント内で使用されているコネクタの一覧を、PowerShellを使って取得する方法を解説します。
PowerShellのPower Platformモジュールには、事前構築済みコネクタに関する情報を直接取得できるコマンドがありません。そのため、コネクタのあぶり出しのために以下のような手順を踏みます。
- PowerShellでテナント内に確立されている接続をすべて取得し、CSVで出力する
- CSVをExcelにインポートし、ピボットテーブルで集計する
実際の手順
[事前準備]PowerShellにPower Platformモジュールをインポートする
今までPower PlatformモジュールをPowerShellで一切実行したことがない場合は、先にモジュールをインポートしましょう。
PowerShellを管理者で実行し、以下のコマンドを実行します。
Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
モジュールをインポートできたら、以下の一旦PowerShellを終了します。
[手順1] テナント内の全接続を取得する
メモ帳やIDEで新しいファイルを作成し、以下のコマンドを書きます。
# 実行ポリシーを変更する
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Power Platformの接続一覧を取得、CreatedByプロパティを展開してからCSVでエクスポートする
Get-AdminPowerAppConnection | Select-Object -Property *,
@{Name='CreatedBy_DisplayName'; Expression={$_.CreatedBy.displayName}},
@{Name='CreatedBy_UserPrincipalName'; Expression={$_.CreatedBy.userPrincipalName}} -ExcludeProperty CreatedBy |
Export-Csv -Path '.\Connections.csv' -NoTypeInformation -Encoding UTF8
名前を付けて保存で、拡張子を.ps1
として保存してください。.ps1
はPowerShell実行ファイルの拡張子です。
ファイルに書いたコマンドはPowerShellコンソール上で直接打ち込んでも機能しますが、私は長いコマンドを実行するときはなんとなくps1ファイルにしています。特にVSCodeなどのIDEを使えばコード補完ができますから、ベタ打ちするより圧倒的に入力が楽です。
このps1ファイルを右クリックし、「PowerShellで実行」で実行します。
コンソールが出現した直後に、Microsoftアカウントでのサインインが求められます。テナント管理者を持つアカウントを選択してください。

取得が完了すると、実行ファイルと同じフォルダに「Connections.csv」が作成されます。
[手順2] CSVをExcelにインポートする
Excelで新規ブックを作成し、[データ] リボン→ [テキストまたは CSV から] を選択します。

ファイル選択ダイアログで、手順1で作成されたCSVを選択して、ブックにインポートします。

列名が正しく認識されず、ConnectionNameやConnectionIdの列もデータ行として扱われてしまう場合があります。
その場合は上の画面の時点で[データの変換]をクリックし、Power Queryエディターで[1行目をヘッダーとして使用]を選択しましょう。表全体が1行繰り上がり、列名がきちんと認識されるようになります。

正常にインポートできると、以下のテーブルがExcelに追加されます。

コネクタ名はConnectorName列に格納されています。
また、それぞれの接続を誰がどの環境で作成したのかも確認することができます。
手順3. ピボットテーブルを作成する
例だと9件しかありませんが、実際の企業で運用されているテナントの場合は接続が数千~数万件あります。
こういった場面でテーブル全体を目視で確認したり、関数で集計するのは非効率なので、ピボットテーブルを活用します。
[挿入]リボン→[ピボットテーブル]の順にクリックするとピボットテーブル作成のダイアログが開きますので、「テーブル/範囲」にインポートしたCSVのテーブル名を入力します。
※スクリプトを変更したり、インポート後に自分でテーブル名を変更していなければ「Connections」になっているはずです。

作成されたピボットテーブルのフィールドを以下のように設定します。
- 行
- ConnectionName
- 値
- カウント / ConnectionId
これで、コネクタの使用数が集計されたピボットテーブルの完成です。

[ おまけ ] コネクタを使っている開発者を抽出したり、特定のコネクタに表示を絞る
ピボットテーブルの機能を活用して、行を追加してコネクタを使用している開発者のUPN(ユーザープリンシパル名)を出したり、スライサーを使って特定のコネクタに絞ったりするのも簡単に実現できます。
たとえばDLPポリシー改定の際に、ブロック・非ビジネスへ移行するコネクタの使用者に連絡したりするのに使えそうですね。

まとめ
コネクタの管理はPower Platformのガバナンス管理に必須です。
普段はPower Platform管理センターやMicrosoft Purviewなどを使って監視していると思いますが、テナント管理者・環境管理者を持たない人とガバナンス設計をする際には、今回のようにPowerShellを使ってCSVにエクスポートしてしまったほうが分析がしやすくなったりします。
シチュエーションによって使い分けていきたいですね。
コメント