フォーラムの皆様:
お忙しいところ恐れ入ります。
管理者によるPowerShellのプロセスファイル(*.ps1)の実行が制限されている状況のため、
PowerShellのコンソール上で入力をエミュレートするために、
プロセスの開始で「powershell.exe」を起動後、文字を入力でPowerShellコンソール画面上に文字入力を行うようにしておりますが、特定の文字列を入力させようとすると、エラーになってしまいます。
こちらについて、対処方法はございますでしょうか?
(やりたいこと)
PowerShellコンソールに、
特定の文字入力を「文字を入力」アクティビティを用いて流し込みたい
具体的には以下の文字列を流し込みたいです:
“[System.Text.Encoding]::UTF8.GetBytes($body)”
※例えばですが、PowerShellのInvoke-RestMethodを用いてTeamsやSlackに対してメッセージをポストする際には、
UTF-8の文字列がHTTPリクエストの結果正しくPOSTされずに文字化けを起こすのですが、それを防止するために、上記の文字列を文字入力による入力エミュレートで差し込んで実行したいと考えています。
つまり以下をすべて入力エミュレートしようとしています。
(ps1ファイルとして、PowerShell呼び出しのアクティビティで実行すればよさそうですが、管理者によってPowerShellファイルの実行が制限されているために画面上からの入力をエミュレーションするしかないのです…)
$uri = ‘https://outlook.office.com/webhook/{TeamsのルームのWebhookアドレス}’
$body = ConvertTo-JSON @{text = ‘テストメッセージ’}
$body = [System.Text.Encoding]::UTF8.GetBytes($body)
Invoke-RestMethod -uri $uri -Method Post -body $body -ContentType ‘application/json’
(試した結果)
「文字を入力」アクティビティにて、特殊キーの構造エラーです
となってしまいます。
(考えている仮説)
私の仮説としては、文字の入力の右項にはダブルクォーテーションで囲んだ文字列を指定してはいるのですが、文字列中の「[System.Text.Encoding]::」部分に存在する記号がUiPath側のシステム文字列として認識されてしまっているのではないかと考えております。
お手数ではございますが、
解決策等をご存じの方がいらっしゃれば、ご教示を頂けないでしょうか?
以上でございます。
よろしくお願い申し上げます。
2 posts - 2 participants