Power Automate DesktopのWeb巡回自動化を試みた筆者。PowerShellのWhileループによる自動化を自宅専用マシンで構築してみたが、ワークスペースのような電源を必ず切るPC環境では、無限ループのようなエキセントリックな仕組みではなく別のトリガーが必要だ。
たとえば、セールスを職務とする優秀なビジネスパースンが自身のクライアント企業の課題を解決するために日々情報を得ようと思えば、"PCの起動時にクライアント企業の公式Webサイトから毎朝、情報を入手する"というフローがよいだろう。新製品やIR、最近の取り組みの状況などインターネットにおける企業の顔ともいうべき公式Webサイトには、たいていの場合ニュースリリースやお知らせなどの最新情報ページがある。
スタートアップフォルダにショートカットファイルを入れてやる
このような場合、Power Automate DesktopによるWeb巡回をPCの起動時をトリガーにするとよいわけだ。このケースで役立つのがスタートアップフォルダである。「Win」+「R」で起動する「ファイル名を指定して実行」ダイアログに、
shell:startup
と入力してOKボタンを押すとユーザーが設定できる起動時のスタートアップフォルダが立ち上がる。このフォルダにPowerShellの実行ファイルPS1ファイルのショートカット(PS1ファイルを右クリック、「ショートカットの作成」でデスクトップ上に出現)を保存しておけば、起動時にPower Automate Desktopで目的のWebページを巡回し、テキストに更新情報が保存されるという仕組みにする。
PS1ファイルもループを外して、スリープを10秒から60秒に変える。ワークスペースのPCなどは、起動時に時間がかかるためだ。
StartUPweb.ps1
$data = Get-Date
Write-Output $data
Start-Process -FilePath "ms-powerautomate://"
# System.Windows.Forms名前空間の読み込み
Add-Type -AssemblyName System.Windows.Forms
# 60秒スリープ
Start-Sleep 60
# キー操作で「Alt+A」と入力する
[Windows.Forms.SendKeys]::SendWait("%{a}")
-
StartUPweb.ps1のショートカットファイルをスタートアップフォルダに入れて、再起動。これまでと同じようにAlt+AキーストロークをPowerAutomateで設定したフローに送信。テキストにWebページの更新情報をテキストに保存してくれた
起動時に無事に1回だけ実行された。ほかのプロセスの起動によりStart-Sleepの時間の調整は個別に必要だが、管理者権限も必要ない。Windowsデフォルト環境でも工夫次第でいろいろとできるものである。個々の状況に応じたカスタマイズが重要なのであると思った。