こんにちは、さとはるです。
今回はWindows環境にRPA(ロボティック プロセス オートメーション)を手軽に導入できるサービスである「Power Automate Desktop 」と、
Web上であらゆるオペレーションを自動化できる「Power Automate」、必要な時だけマシンを利用できる「Azure Virtual Machine」の3つを組み合わせて「自動化」の限界に挑んでみたいと思います。
流れ
- Azure Virtual Machineを立てる
- Power Automate Desktopをインストールする
- マシンを登録する
- デスクトップフローを作成
- クラウドフローからデスクトップフローを呼び出し
Azure Virtual Machineを立てる
特に変わったことはしないので割愛します。
OSはWindows、冗長化も不要でお願いします。
AADユーザーにすると後の手順が変わる可能性がありますので、ユーザー名とパスワードでのログインで作成した前提で進めます。
Power Automate Desktopをインストールする
公式のリファレンスを見つつダウンロード&インストールしましょう。
途中のオプションは基本的にはお好みで構いませんが、machine-runtimeみたいなやつはクラウドフローへの接続に必要なのでチェックしてください。
ここでチェックし忘れても後から追加でインストールすることも可能です。
Power Automate Desktop を使うユーザーのアカウントでログインします。
Power Automateクラウドフローを作成するアカウントだとスムーズだと思います。
また、このアカウントは個人アカウント不可なので何らかの組織のアカウントを使いましょう。
マシンを登録する
今Power Automate DesktopをインストールしたVMをクラウドフローから呼べるように設定をします。
VM上でPower Automate Desktopの設定を開き、マシンの名称を確認します。
make.powerautomate.comを開き、[データ]→[接続]→[新しい接続]とクリックし、[Desktop flows]を選択します。
設定は以下のようにします。
設定項目名 | 設定内容 |
Connect | Directly to machine |
Machine or machine group | <確認したマシンの名称> |
Domain and username | <VMにログインするときのユーザー名> |
Password | <VMにログインするときのパスワード> |
コレでVM上のPower Automate Desktopをクラウドフローから呼び出す準備が整いました。
デスクトップフローを作成
VM上で動かしたいデスクトップフローを作成します。
この作業自体はPower Automate Desktop を使うユーザーのアカウントが一緒であればVM上でなくとも作業可能です。
今回は例として「ペイントを開いて画面全体のスクリーンショットを保存する」という動作を自動化してみました。
クラウドフローからデスクトップフローを呼び出し
それではいよいよデスクトップフロー呼んでみます。
[Desktop flows] コネクタをの[デスクトップ用 Power Automate で構築したフローを実行する」アクションを追加します。
右上の[・・・]をクリックし、マイコネクションから先ほど追加したVMの接続を選択します。
[Desktopフロー]のドロップダウンにはこのアカウントが持っているデスクトップフローが表示されるので、実行させたいものを選択しましょう。
[実行モード]は[非アテンド型(サインアウト後のコンピューターで実行)]を選びます。
注釈にもありますが、非アテンド型はサインアウトされていることが前提のため、もしRDP等で繋ぎっぱなしの場合はログアウトしておきましょう。
また、アテンド型・非アテンド型問わずVMの電源自体が入っていない場合は実行できないのでご注意ください。
さっそく実行してみます。
無事動いてそうですね。
VMの中を確認してみましょう。
無事にスクリーンショットが取れてそうです。
この画像からもわかりますが、非アテンド型で実行した場合には画面サイズが1024*768になるようなのでご注意ください。
まとめ
クラウドフローからデスクトップフローを呼び出すことでAzure VMの操作を自動化することができました。
CLIで操作できるツールならいくらでも自動化する方法がありますが、GUIを操作する必要がある場合にはRPAに頼らざるを得ない時があります。
Power Automate二種を組み合わせることで、GUIの自動操作をシステムに組み込むことも可能になります
今回は使っていませんがクラウドフローからデスクトップフローへパラメータを渡して実行することも可能です。
文字通り無限の可能性を持つデスクトップフローコネクタを使いこなして行きましょう!
本記事が少しでも誰かの手助けになれば幸いです。