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

Blue Prism DX

このDXはダウンロードするとサンプルのプロセスも付いてくる。
そしてユーザーマニュアルも見れる。
これで解決。
のはずがわかりにくい!ので解説。

まずPowerShellのファイルを用意。
今回はサンプルとして公開されていたものを使いました。中身は何でもいいので、引数のところだけ公開

#-Begin-----------------------------------------------------------------

Param (
  [String]$var1,
  [String]$var2,
  [String]$desc,
  [Int]$i
)

Powershellのバージョンを知ろう

まずは標準のPowershell。自分の環境では5.1とのことです。

標準のPowershell

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

Powershell7

こちらは7.2.4とのことでした。
ちなみにVBOの使い方がバージョンによって違うので分けて記述します。

VBOの使い方:標準のPowerShellには "Run Script"

今回は Ver5.1で検証した結果です。
RunScriptには5つのInputがあります。

  1. PowerShell Script Filename

  2. PowerShell Script Code

  3. Parameters

  4. Delimiter

  5. 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モデルを使用することができ、複数のスレッドがマーシャルコールなしでオブジェクトと対話することが可能になります。

オリジナル https://stackoverflow.com/questions/127188/could-you-explain-sta-and-mta

もしこの説明を聞いてわからない方、UIが関係する方はとりあえずSTA=Trueにしておいた方が問題はなさそう(保証なし)

VBOの使い方:最新のPowerShellには "Run Script with PowerShell Core"

今回は Ver7.2.4で検証した結果です。
Run Script with PowerShell Core には3つのInputがあります。

  1. PowerShell Script Filename

  2. Parameters

  3. PwshPath

PowerShell Script Filename は RunScript と同様にフルパスを指定するだけ。
問題はParameters です。記述方法が異なります。

Parameters


"A" "B" "C"

引数の順番にダブルコーテーションで囲った値をスペース区切りで書きます。引数にスペースが入らない場合はダブルコーテーションを省略可能。

PwshPath

PowerShell Coreのフルパスを指定します。
標準の場合は以下の通り

"C:\Program Files\PowerShell\7"

いいなと思ったら応援しよう!