8

以前にも回答で記載したのですが、WinActorは32bit版のPowerShellは起動できるのですが、
64Bit PowerShellをそのままでは起動できません。
 
64bitで起動できない場合、実行したコマンド結果が想定した結果を返さない事があります。
 
PowerShell単体の実行ではエラーとならないのにWinActorで実行するとエラーとなるので
原因が分からなく混乱されることが多いようです。
 
参考:
WinActorノートのシェルツールでPower Shellのコマンドが処理されない
 
「コマンド実行」ノードもまた然り。
以下の方法で確認可能です。
 
64bitで起動している場合の例(コマンドプロンプトでコマンド実行した例):

 
powershell -command [System.Environment]::Is64BitProcess
を実行し、64bitで起動しているので「True」が返ってきています。
 
WinActorで確認した例:

 
「コマンド実行」ノード

コマンド: 値⇒cmd
オプション:値⇒/c powershell -command [System.Environment]::Is64BitProcess
      起動終了まで待つ(出力を受け取る) を選択
      出力先変数名:(任意の変数)
 
出力結果を「待機ボックス」ノードで表示すると「False」を表示。
32bitで起動していることが分かります。
 
そこで、以下の様に記載して実行してみると、「True」が返ってきています。
 
コマンド: 値⇒cmd
オプション:値⇒/c %SystemRoot%\sysnative\WindowsPowerShell\v1.0\powershell.exe -command [System.Environment]::Is64BitProcess
      起動終了まで待つ(出力を受け取る) を選択
      出力先変数名:(任意の変数)
 
コマンド実行でPowershell(スクリプト含む)を実行する場合は、試してみてください。
 
WinActorノートのライブラリ修正は、先に記載した質問の回答にも記載していますが、
 
以下の行を2行目に追加。
cmd = “Start-Process C:\Windows\SysNative\WindowsPowerShell\v1.0\powershell.exe -ArgumentList ” & chr(34) & !コマンド! & chr(34)
 
以下の行を修正。
SetUmsVariable “$SET_ARGUMENT”, !コマンド!

SetUmsVariable “$SET_ARGUMENT”, cmd
 
これで、64bit版PowerShellにてコマンド実行できるようになります。
 
参考まで。

たい 編集済みのコメント
回答とコメントは、会員登録(無料)で閲覧できるようになります。