M365関連 プログラム 技術

PowerShellでPower系(PowerApps、PowerAutomate)を操作する

今回はPowershellからPowerApps・PowerAutomateのコマンドについて調べたのでそのメモとなります

Version
OSWindows 11 Pro
PowerShell7.4.1
Microsoft.PowerApps.Administration.PowerShell(モジュール)2.0.180
Microsoft.PowerApps.PowerShell(モジュール)1.0.34

Power系コマンドのインストール

以下のコマンドを実行してそれぞれのモジュールをインストールします

Install-Module -Name Microsoft.PowerApps.Administration.PowerShell
Install-Module -Name Microsoft.PowerApps.PowerShell

アプリの一覧取得

PowerAppsの場合は【Get-AdminPowerApp】、PowerAutomateの場合は【Get-AdminFlow】を実行します。ただ、PowerAutomateの場合は取得した情報に所有者情報は含まれていないようです

Get-AdminPowerApp | ForEach-Object {
    $appName = $_.DisplayName
    $appId = $_.AppName
    $owner = $_.Owner.displayName
    $createdTime = ConvertTimeZone($_.CreatedTime)
    $appLastModified = ConvertTimeZone($_.LastModifiedTime)
    LogWrite "Debug" "AppName: $appName, AppId: $appId, Owner: $owner, CreatedTime: $createdTime, LastModified: $appLastModified"
}

Get-AdminFlow | ForEach-Object {
    $flowName = $_.DisplayName
    $flowId = $_.FlowName
    $createdTime = ConvertTimeZone($_.CreatedTime)
    $flowLastModified = ConvertTimeZone($_.LastModifiedTime)
    LogWrite "Debug" "FlowName: $flowName, FlowId: $flowId, CreatedTime: $createdTime, LastModified: $flowLastModified"
}

時刻の変換

上記で取得した時間はUTCでの時間となっているのでそれを変換する必要があったため、実行環境のタイムゾーンを取得してそれに合った時間に変換する関数で変換しています

function ConvertTimeZone($dataTime) {
    $localTimeZone = (Get-TimeZone).Id
    # ConvertTimeBySystemTimeZoneIdの引数は変換対象時間、変換元タイムゾーン、変換先タイムゾーンの順番
    return Get-Date([TimeZoneInfo]::ConvertTimeBySystemTimeZoneId($dataTime, "UTC", $localTimeZone)) -Format "yyyy-MM-dd HH:mm:ss"
}

環境の取得

環境一覧の取得コマンドですが、PowerAppsにはあるのですがPowerAutomateにはありませんでした

Get-AdminPowerAppEnvironment | ForEach-Object {
    $environmentName = $_.DisplayName
    $environmentId = $_.EnvironmentName
    $location = $_.Location
    if ($_.CreatedTime -ne $null) {
        $createdTime = ConvertTimeZone($_.CreatedTime)
    }
    $createdBy = $_.CreatedBy.email
    if ($_.LastModifiedTime -ne $null) {
        $lastmodified = ConvertTimeZone($_.LastModifiedTime)
    }
    $lastmodifiedBy = $_.LastModifiedBy
    LogWrite "Debug" "EnvironmentName: $environmentName, EnvironmentId: $environmentId, Location: $location, CreatedTime: $createdTime, CreatedBy: $createdBy, LastModified: $lastmodified, LastModifiedBy: $lastmodifiedBy"
}

最後に

今回調べてみてPowerAutomate系のコマンドは少ない気がしました。紹介したもの以外にも以下のサイトでは様々な例が記載されています。また、Dateverseについてはまた別の方法でのアクセスになるようなのでそちらについても今後調べてみたいと思います

MSサイト
Power Apps と Power Automate の PowerShell サポート - Power Platform | Microsoft Learn
Power Apps と Power Automate の PowerShell サポート - Power Platform | Microsoft Learn

PowerShell コマンドレットについて学び、それらをインストールして実行する方法のチュートリアルを取得してください ...

続きを読む

以下のサイトはコマンド一覧のサイトとなります

MSサイト
Microsoft.PowerApps.Administration.PowerShell Module | Microsoft Learn
Microsoft.PowerApps.Administration.PowerShell Module | Microsoft Learn

Power Apps Administration PowerShell lets you manage Power A ...

続きを読む

会社紹介

私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています

会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造

この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています

ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します

ホームページ
アドバンスド・ソリューション株式会社
アドバンスド・ソリューション株式会社

アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...

サイトへ移動

お問い合わせ
お問い合わせ  | アドバンスド・ソリューション株式会社
お問い合わせ | アドバンスド・ソリューション株式会社

お問い合わせはこちら

-M365関連, プログラム, 技術
-, ,