Blue PrismからPowershellを使おう
VBOのダウンロード
Blue PrismでPowerShellを使う簡単な方法はDXからVBOをダウンロードする
Function for Utility - PowerShell - 1.3.1Blue Prism Digital Exchange
https://digitalexchange.blueprism.com/dx/entry/9648/solution/utility---powershell
このDXはダウンロードするとサンプルのプロセスも付いてくる。
そしてユーザーマニュアルも見れる。
これで解決。
のはずがわかりにくい!ので解説。
まずPowerShellのファイルを用意。
今回はサンプルとして公開されていたものを使いました。中身は何でもいいので、引数のところだけ公開
#-Begin-----------------------------------------------------------------
Param (
[String]$var1,
[String]$var2,
[String]$desc,
[Int]$i
)
Powershellのバージョンを知ろう
まずは標準のPowershell。自分の環境では5.1とのことです。

次にインストールしたPowershell。上のスクリーンショット見てわかる通り、「最新のPowerShellをインストールしてください!」って言われてるので、入れてみた。

こちらは7.2.4とのことでした。
ちなみにVBOの使い方がバージョンによって違うので分けて記述します。
VBOの使い方:標準のPowerShellには "Run Script"
今回は Ver5.1で検証した結果です。
RunScriptには5つのInputがあります。
PowerShell Script Filename
PowerShell Script Code
Parameters
Delimiter
STA
一行で書く場合
この場合は "PowerShell Script Code" を使います。
Get-CimInstance -ClassName Win32_ComputerSystem
サンプルではこのコードを実行することになっています。
以上。これだけです。
スクリプトファイルを使用する場合
"PowerShell Script Filename", "Parameters", "Delimiter" を使用します。
パラメーターを使わない場合は "PowerShell Script Filename"にフルパスを書くだけ(ファイル名も忘れずに)
しかしパラメーターがあるといきなり難易度が上がります。
"Parameters"の指定は以下のように書きます。
var1=A,ver2=B,desc=C
カンマ区切りがデフォルトですが、これを変える場合は"Delimiter"で指定します。
STA
PowerShell を起動するのに、シングルスレッド アパートメントを使用するかマルチスレッド アパートメントを使用するかを指定します。
このアクションではSTAをTrueで指定しないとMTAとしてPowerShellを実行します。
以下STAとMTAの説明
STAとMTAについて教えてください。
COMスレッドモデルは「アパートメント」モデルと呼ばれ、初期化されたCOMオブジェクトの実行コンテキストは、単一スレッド(シングルスレッド・アパートメント)または多数のスレッド(マルチスレッド・アパートメント)に関連付けられます。このモデルでは、COMオブジェクトは一度アパートで初期化されると、その実行時間の間、そのアパートの一部となる。
STAモデルは、スレッドセーフでないCOMオブジェクトに使用されます。つまり、そのオブジェクト自身が同期を処理しないことを意味します。一般的には、UIコンポーネントがこれに該当する。そのため、他のスレッドがそのオブジェクトと対話する必要がある場合(フォームのボタンを押すなど)、メッセージはSTAスレッドにマーシャルされます。
COMオブジェクトが自身の同期を処理できる場合、MTAモデルを使用することができ、複数のスレッドがマーシャルコールなしでオブジェクトと対話することが可能になります。
もしこの説明を聞いてわからない方、UIが関係する方はとりあえずSTA=Trueにしておいた方が問題はなさそう(保証なし)
VBOの使い方:最新のPowerShellには "Run Script with PowerShell Core"
今回は Ver7.2.4で検証した結果です。
Run Script with PowerShell Core には3つのInputがあります。
PowerShell Script Filename
Parameters
PwshPath
PowerShell Script Filename は RunScript と同様にフルパスを指定するだけ。
問題はParameters です。記述方法が異なります。
Parameters
"A" "B" "C"
引数の順番にダブルコーテーションで囲った値をスペース区切りで書きます。引数にスペースが入らない場合はダブルコーテーションを省略可能。
PwshPath
PowerShell Coreのフルパスを指定します。
標準の場合は以下の通り
"C:\Program Files\PowerShell\7"