【UiPath】Amazon WorkSpacesをRemote Runtimeで自動化

# はじめに
本記事では2024年10月リリースにてAmazon WorkSpacesに対応しましたUiPath Remote Runtimeの利用手順について説明します。この機能によってクライアント側のStudio/Robotからリモート(Amazon WorkSpaces)側のアプリケーションを自動化できるようになります。

## デモ動画
クライアント側のStudioからリモート(Amazon WorkSpaces内)のMicrosoft EdgeのUI要素(セレクター)を認識しています。

<iframe width="600" height="440" src="https://www.youtube.com/embed/hH57E2_nLHY?si=nQhK1DXOw2AWkSRo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

## UiPath Remote Runtimeとは？
- UiPath Remote Runtimeとは、クライアントにインストールされたStudio/Robotとは異なるマシンで実行されているリモートアプリケーションまたはデスクトップのUI要素を認識するためのコンポーネントです。
- Remote Runtimeではサーバー側とクライアント側にセレクター受け渡しのモジュールをインストールすることによってローカルアプリケーションと同様にUI要素を認識し、UI操作などの自動化が可能になります。
- Remote Runtimeの機能を使用するには、リモートホスト(サーバー)側にRemote Runtimeをインストールし、クライアント側にリモートアプリ・デスクトップ製品に応じた拡張機能をインストールします。なおリモートホストにはStudio/Robotをインストールする必要はありません。

![RemoteRuntime01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/82380bf5-859c-2e35-1cb1-d62e4c2b04b4.png)

- Remote Runtimeはこれまで下記3つの製品に対応していましたが、今回新たにAmazon WorkSpacesにも対応しました。
    - Citrix Virtual Apps and Desktops (旧 XenApp / XenDesktop)
    - VMware Horizon
    - Windows RDP

- Remote Runtimeの詳細については [UiPath Remote Runtimeのメリットと利用手順](https://qiita.com/hidecha/items/217c8aded5a32e127a5a) もご参照ください。

# 前提条件
- Amazon WorkSpacesでRemote Runtimeを利用するにはそれぞれのコンポーネントの下記バージョンを利用する必要がありますので、既存環境で使用する際にはアップグレードしてください。
    - **Studio/Robot 2024.10.5** 以降
    - **Remote Runtime 2024.10.6** 以降
    - **UI Automation 24.10.6** 以降
- Amazon WorkSpacesへの通信プロトコルは **PCoIP** のみRemote Runtimeに対応しております。DCV(WSP)プロトコルが使用されている場合には [プロトコル変更](https://docs.aws.amazon.com/ja_jp/workspaces/latest/adminguide/modify-workspaces.html#modify_protocols) をご検討ください。
- 【2025年3月5日追記】**v2025.2リリースにてDSV(WSP)プロトコルもサポートされるようになりました。**  DSV(WSP)プロトコルを使用するには、Studio/Robot、Remote Runtime および UI Automation を 25.2 以降 にアップグレードします。

# Remote Runtimeの利用手順
1. Amazon WorkSpacesのクライアントソフトウェアがインストールされているマシンにStudio/Robot 2024.10.5以降をインストールします。
2. [ツール] > [UiPath 拡張機能] > **Amazon WorkSpaces** をインストールします。管理者権限が必要となるため権限昇格して実行します。
    ![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/08e98a8f-d648-6c5f-222f-a15685339447.png)

    - 拡張機能インストールの詳細は [こちらのページ](https://docs.uipath.com/ja/studio/standalone/2024.10/user-guide/extension-for-amazon-workspaces) をご参照ください。
3. Windowsエクスプローラーにて `C:\Program Files\Amazon Web Services, Inc\Amazon WorkSpaces\vchan_plugins\UiPathPluginAmazonPCoIP_x64.dll` というファイルがコピーされていることを確認します。

4. Amazon WorkSpacesのクライアントソフトウェアにてリモートの仮想デスクトップにアクセスします。
    ![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/2cc8cd94-c61f-110f-560e-e68d8b2d1eac.png)

5. 仮想デスクトップがインターネットアクセスできる場合にはブラウザーにて [Remote Runtime](https://download.uipath.com/UiPathRemoteRuntime.msi) をダウンロードします。
    ![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/ed91b9bd-8c10-7852-42cc-77feffdbd099.png)

    - もしインターネットアクセスができない場合には [こちらのサイト](https://repost.aws/ja/knowledge-center/connect-workspace-rdp)を参考にして、RDP接続を可能にし、同じVPCのEC2インスタンスなどを経由してファイルをコピーします。

6. Remote Runtimeをインストールします。
    - インストーラーを実行し、ライセンス規約に同意して("I accept the terms in the License Agreement" をオンにして) **Advanced** をクリックします。
        ![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/45a30225-9022-8564-3765-28a44fd83899.png)

    - リモートマシンのChrome/EdgeやJavaアプリを自動化したい場合にはそれぞれの拡張機能も選択し、NextをクリックしてInstallを実行します。
        ![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/88cb2259-490a-6bb6-a39f-aa276401aa3a.png)

7. 次にワークフローを作成します。
    - UI Automationはバージョン24.10.6を利用するのが最も容易です。
    ![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/0a9add40-f5a0-1229-0d3f-0f71cf4d99bf.png)
        - 別のUI Automationバージョンを使用することもできますが、依存関係のあるUiPathアクティビティをリモートマシンに配置する必要があります。詳細は [こちらの手順](#%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%9E%E3%82%B7%E3%83%B3%E3%81%B8%E3%81%AEuipath%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%93%E3%83%86%E3%82%A3%E3%81%AE%E9%85%8D%E7%BD%AE) をご参照ください。
    
    - **アプリケーション/ブラウザーを使用** アクティビティを追加し、自動化するアプリケーションとして Amazon WorkSpacesを指定します。(ここで警告画面が出る場合には、後述の [トラブルシューティング手順](#%E8%AD%A6%E5%91%8A%E7%94%BB%E9%9D%A2%E3%81%8C%E5%87%BA%E3%82%8B%E6%99%82%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95) をご参照ください)
        ![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/05f9f0ad-0ea9-1664-47c3-1bd724fed121.png)

    - UI操作のアクティビティを使用します。作成手順はローカルアプリケーションと同様に行うことができます。ここでは例としてAmazon WorkSpaces内のEdgeでUiPathの [会社概要](https://www.uipath.com/ja/about-us) にアクセスし、見出しの文字列を取得します。
        ![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/b4030d38-6f3b-408e-9da6-8aedb6669dd2.png)

8. ワークフローをデバッグ実行し、正常に動作することを確認します。
    ![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/45948682-c237-d744-2eb3-6bd3339851ff.png)

# 警告画面が出る時の対処法
- ワークフロー作成時にリモートのターゲットを指定する際、次のような警告画面が表示されることがありますので対処方法について説明します。
    ![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/575abd3a-16f5-898b-930b-a6abea4fe0d4.png)

## Remote Runtimeのバージョン確認
- Remote Runtimeのバージョンを確認し、2024.10.5以前を使用している場合には、[こちら](https://download.uipath.com/versions/24.10.6/UiPathRemoteRuntime.msi)から2024.10.6をダウンロードしてアップグレードしてください。

## UI Automationのバージョン確認
- Studioプロジェクト管理にてUI Automationのバージョンを確認し、24.10.5以前を使用している場合には、24.10.6以降にアップグレードしてください。
    ![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/5179cfd8-eb65-f3f7-bcd1-a3dc9bcafb2b.png)

## リモートマシンへのUiPathアクティビティの配置
- UI AutomationとRemote Runtimeのバージョンが一致している場合には、UI Automationの依存関係のあるUiPathアクティビティがリモートマシンにも自動的に配置されますが、異なるバージョンを使用する場合には手動で `C:\Program Files (x86)\UiPath\RemoteRuntime\packages\uipath` にコピーする必要があります。
    ![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/393cc514-c495-c8f4-9388-7ada45200729.png)

- UiPathアクティビティはクライアントマシンのNuGetキャッシュディレクトリに作成されますが、Amazon WorkSpacesはクライアントマシンからのファイルコピーができないため、[後述の手順](#nugetexe%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%93%E3%83%86%E3%82%A3%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89) に従い、リモート側でnuget.exeコマンドを使用してアクティビティをダウンロードします。なおインターネットアクセス不可の環境では上記と同様に [こちらのサイト](https://repost.aws/ja/knowledge-center/connect-workspace-rdp) を参考にして、RDP接続を可能にし、同じVPCのEC2インスタンスなどを経由してファイルをコピーします。 

- 異なるアクティビティバージョンの配置については [サイドバイサイドサポートのページ](https://docs.uipath.com/ja/studio/standalone/2024.10/user-guide/about-uipath-remote-runtime#side-by-side-support) をご参照ください。

### nuget.exeによるアクティビティのダウンロード
1. Amazon WorkSpacesにて [nuget.exe CLIツール](https://dist.nuget.org/win-x86-commandline/latest/nuget.exe) をダウンロードします。
2. コマンドプロンプトにて次のコマンドを実行し、依存関係を含めたアクティビティパッケージをダウンロードします。`-Version 24.10.7`は利用するUI Automationのバージョンを指定します。

    ```
    nuget.exe install UiPath.UIAutomation.Activities -DirectDownload -NoHttpCache -OutputDirectory ".\output" -Source https://pkgs.dev.azure.com/uipath/Public.Feeds/_packaging/UiPath-Official/nuget/v3/index.json -Version 24.10.7
    ```

3. output配下にダウンロードされた **UiPathアクティビティ** を `C:\Program Files (x86)\UiPath\RemoteRuntime\packages\uipath` にフォルダーごとコピーし、バージョンのみにリネームします。(例: `UiPath.24.10.108.16096` → `24.10.108.16096`)
    ![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178312/f6d788d5-c860-bb33-3a23-1da917434a98.png)

4. この手順によって新しいバージョンのUI Automationが利用可能になります。

# おわりに
本記事では、このたびAmazon WorkSpacesに対応しましたUiPath Remote Runtimeの利用手順について説明しました。Amazon WorkSpacesをお使いのお客様は是非お試しください！