Power Automate for desktop

[Power Automate for desktop]スクリプトの実行環境を調べてみました。

Power Platform CommunityでPower Automate for desktop(PAD)で実行されるPowerShellのバージョンに関する質問がありました。

「PowerShell スクリプトの実行」アクション実行時の挙動を調べたところ、「powershell.exe」が実行されることが確認できたので、PowerShellに関してはシステムに依存しているものと推測できましたが、折角なので他のスクリプトアクションについても調べることにしました。

DOS コマンドの実行

適当なコマンド(今回はver)実行時の挙動を確認したところ、下記プロセスが実行されていました。

"cmd.exe" /c ver

コマンドプロンプトの「/c」オプションを使って、実行するコマンドを引数として渡しているようです。

VBScript の実行

下記スクリプトを実行してバージョンを確認してみました。

WScript.Echo ScriptEngineMajorVersion & "." & ScriptEngineMinorVersion & "." & ScriptEngineBuildVersion

結果は下図の通りで、Windows 11 Pro バージョン 21H2 環境では「5.8.16384」となっていました。PADからではなく直接スクリプトを実行した結果も同様です。

アクション実行中は下記プロセスが実行されており、cmd.exe経由でcscript.exeを実行し、「/E」オプションでVBScriptが指定されていることが確認できました。

"cmd.exe" /c ""C:\\Windows\\SysWOW64\\CScript.exe" //U //NoLogo //E:vbscript "C:\\Users\\***\\AppData\\Local\\Temp\\Robin\\***.tmp"  2> "C:\\Users\\***\\AppData\\Local\\Temp\\Robin\\***.tmp"  > "C:\\Users\\***\\AppData\\Local\\Temp\\Robin\\***.tmp""

JavaScript の実行

下記スクリプトを実行してバージョンを確認してみました。

WScript.Echo(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion() + "." + ScriptEngineBuildVersion());

結果は下図の通りで、Windows 11 Pro バージョン 21H2 環境では「5.8.16384」となっていました。PADからではなく直接スクリプトを実行した結果も同様です。

アクション実行中は下記プロセスが実行されており、cmd.exe経由でcscript.exeを実行し、「/E」オプションでJavaScript(JScript)が指定されていることが確認できました。

"cmd.exe" /c ""C:\\Windows\\SysWOW64\\CScript.exe" //U //NoLogo //E:javascript "C:\\Users\\***\\AppData\\Local\\Temp\\Robin\\***.tmp"  2> "C:\\Users\\***\\AppData\\Local\\Temp\\Robin\\***.tmp"  > "C:\\Users\\***\\AppData\\Local\\Temp\\Robin\\***.tmp""

PowerShell スクリプトの実行

下記スクリプトを実行してバージョンを確認してみました。

Write-Output $PSVersionTable

結果は下図の通りで、Windows 11 Pro バージョン 21H2 環境ではPSVersionの値が「5.1.22000.282」となっていました。PADからではなく直接スクリプトを実行した結果も同様です。

アクション実行中は下記プロセスが実行されており、powershell.exeの「-File」オプションで一時的に作成された(と思われる)スクリプトファイルが実行されていることが確認できました。

"powershell.exe" -executionpolicy bypass -File "C:\\Users\\***\\AppData\\Local\\Temp\\Robin\\***.tmp.ps1"

Python スクリプトの実行

下記スクリプトを実行してバージョンを確認してみました。

import sys
print(sys.version)

結果は下記の通りで、PAD バージョン 2.17.00232.22042 環境では「IronPython 2.7.9」となっていました。
恐らくCreateScriptSourceFromFileメソッドやCreateScriptSourceFromStringメソッドあたりでスクリプトを実行しているのではないでしょうか。

2.7.9 (IronPython 2.7.9 (2.7.9.0) on .NET 4.0.30319.42000 (64-bit))

PADのインストールフォルダを見てもIronPython関連のファイルが組み込まれていることが確認できます。

現時点(2022年3月)ではまだPython 2環境ですが、IronPython 3の安定板がリリースされればPython 3環境になるかもしれません。


2024/4/5 追記:
Power Automate for desktop(PAD) バージョン 2.43 で「Python スクリプトの実行」アクションに「Python のバージョン」オプションが追加され、Python 2環境で実行するかPython 3環境で実行するかを選べるようになりました。

PADのスクリプトアクションの実行環境を調べた結果、

  1. DOS、VBScript、JavaScript、PowerShell:システム依存
  2. Python:PAD組み込みのIronPython依存

であることが分かりました。
もちろん、今後のアップデートでガラリと変わる可能性もあるわけですが、少なくとも本記事執筆時点では上記のようになっているようです。

[Power Automate for desktop]実行中のフローの名前を取得する方法前のページ

AppSheetとGoogle Apps Scriptとの連携機能を試してみました。次のページ

関連記事

  1. Power Automate for desktop

    [Power Automate]クラウドフローとデスクトップフローとのファイル連携について

    前回の記事でクラウドフローとデスクトップフローの連携について紹介しまし…

  2. Power Automate for desktop

    無料で学ぶPower Automate Desktop

    下記記事にある通り、2021年の3月からPower Automate …

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP