公式ブログを見れば分かる通り、Power Automate Desktop(PAD)は頻繁に更新されます。
自分のPCにインストールしてあるPADのバージョンと最新版のPADのバージョンとを見比べて、新しいバージョンがリリースされていたら更新する、という作業が面倒だったので、手間を軽減するためのスクリプトをPowerShellで書いてみました。
取得したバージョン情報は後で使うこともあるので、クリップボードにコピーする処理も入れています。
上記スクリプトを実行すると、下図のようにインストールされているPADのバージョンと最新版のPADのバージョンがメッセージボックスで表示され、「はい」ボタンをクリックすることで、最新版のPADのインストールが行われます。
最新版のPADのバージョンの取得
PAD上でバージョン確認を行った際、バージョン情報はMicrosoftのサーバー上にあるJSONデータ(PADUpdate.json)から取得しています。
同様に、スクリプトからもInvoke-RestMethodを使って情報を取得するようにしました。
$LatestVersion = (Invoke-RestMethod -Method Get -Uri "https://download.microsoft.com/download/b/d/8/bd8409df-7b80-4ef7-89c5-5a7a941a5093/PADUpdate.json" -ContentType "application/json").latestVersion.version
ただ、下記の通りアプリのアップデート通知は最新版のリリース日から7日後に来るとの情報もあったため、先にインストーラーをダウンロードしておいて、インストーラーからバージョンを取得する方法も用意しています(UpdatePAD2.ps1)。
Power Automate Desktopのアップデート通知は、最新バージョンのリリース日から7日後に通知が来るそうです!
更新されていない方は本日通知が来るかもしれません#PowerAutomateDesktop #RPA
— ASAHI Accounting Robot研究所 | 出版@中小企業経営者のための「RPA」入門 (@AsahiRobo_RPA) June 25, 2021
インストールされているPADのバージョンの取得
インストールされているPADのバージョンは、下記の通りレジストリから取得しています。
その際、「DisplayName」の値が「Power Automate Desktop」の項目が複数あったため「BundleVersion」の有無で判断するようにしました。
$InstalledVersion = (Get-ChildItem -Path ("HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall") | ForEach-Object {Get-ItemProperty $_.PsPath} | Where-Object {($_.DisplayName -eq "Power Automate Desktop") -and ($_.BundleVersion -ne $NULL)}).BundleVersion
インストーラーのダウンロードに時間が掛かるのが難点ですが、これでバージョンチェックの手間が省けるようになりました。
この記事へのコメントはありません。