UiPath Edge拡張機能とグループポリシー

# はじめに

UiPathでEdgeブラウザ上の自動化を行う場合、UiPathのEdge向け拡張機能（以下、Edge拡張機能）をインストールする必要があります。Edge拡張機能のインストールにはローカルグループポリシーの変更が伴います。使用する端末の（他のソフトウェアを含めて）Edge拡張機能がActive Directoryのグループポリシーにより管理されており、グループポリシーに設定されている内容と競合する場合にUiPathのEdge拡張機能が正常に動作しない場合があります。

本稿では、UiPathのEdge拡張機能に関連するポリシーと、Active Directoryのグループポリシーと競合する場合の挙動と回避方法についてご紹介します。問題の切り分けの参考になれば幸いです。

参考：[UiPath Studio Edge向け拡張機能](https://docs.uipath.com/ja/studio/standalone/2023.10/user-guide/extension-for-edge-chromium
)

# 前提条件

ここでは、Edge MV3に対応するUiPath拡張機能を想定しています。
MV3対応版のUiPath拡張機能は、次のバージョンより新しいUiPathをご利用頂く必要があります。（2024年4月時点にてサポート期間内のバージョンのみを記載しています）
- 2021.10.8（2021.10.xをご利用の場合）
- 2022.4.4（2022.4.xをご利用の場合）
- 2022.10.x以降

MV2の廃止に関する情報については、以下のリンクをご参照ください。

参考：
[【重要】Chrome/Edge Manifest V2 のサポート終了に伴う製品アップグレードのお願い](https://www.uipath.com/ja/community-blog/knowledge-base/manifest-v3)
[Microsoft Edge 向け拡張機能](https://docs.uipath.com/ja/studio/standalone/2023.4/user-guide/extension-for-edge-chromium)


# UiPath Edge拡張機能インストール時に設定されるグループポリシー

UiPath Edge拡張機能をインストールした場合に設定されるローカルグループポリシーには、以下のようなものがあります。例として、UiPath v2023.10.4のEdge拡張機能をグループポリシーによるオフラインインストールでインストールした際、設定されるポリシーとその値を記載します。

| ポリシー名 | ポリシーの値 | 
|:-----------|:------------|
| [ExtensionInstallForcelist](https://learn.microsoft.com/ja-jp/deployedge/microsoft-edge-policies#extensioninstallforcelist)（サイレントインストールされる拡張機能を制御する）    | ["ndmegdjihnhfmljjoaiimbipfhodnbgf;file:///C:/ProgramData/UiPath/UiPath.Common/EdgeExtension_SelfHosted/extension_manifest_edge.xml"]  |
| [ExtensionInstallAllowlist](https://learn.microsoft.com/ja-jp/deployedge/microsoft-edge-policies#extensioninstallallowlist)（特定の拡張機能のインストールを許可する）   | ["ndmegdjihnhfmljjoaiimbipfhodnbgf"]       |
| [NativeMessagingAllowlist](https://learn.microsoft.com/ja-jp/deployedge/microsoft-edge-policies#nativemessagingallowlist) （ユーザーが使用できるネイティブ メッセージング ホストを制御する）    | ["com.uipath.chromenativemsg_v2","com.uipath.portable_host"] |
| [DeveloperToolsAvailability](https://learn.microsoft.com/ja-jp/deployedge/microsoft-edge-policies#developertoolsavailability) （開発者ツールの使用を制御する）     | 1        |

::: note info
Edge拡張機能に関連するポリシーはEdgeブラウザの `edge://policy`のページから確認できます。
:::

上記の拡張機能IDはインストール方法、Studio/Robotのバージョンによって異なる場合があります。拡張機能IDの詳細なリストは[ List of extensions for Edge ](https://docs.uipath.com/ja/studio/standalone/2023.10/user-guide/edge-extensions)に記載があります。

その他、Edge拡張機能の動作に影響するグループポリシーがあります。それらの詳細については以下の参考リンクをご参照ください。

参考：[UiPath Edge 拡張機能に影響を与えるグループ ポリシー](https://docs.uipath.com/ja/studio/standalone/2023.10/user-guide/edge-group-policies#group-policies-that-affect-the-uipath-extension-for-edge)


# グループポリシーとの競合が疑われるケース

以下のような挙動が見られる場合、Active Directoryに設定されているグループポリシーとの競合が発生していることが考えられます。

- UiPathのEdge拡張機能をインストールした直後は拡張機能が正常に動作していたが、一定時間経過した後に動作しなくなった
- 端末を再起動した後にEdge拡張機能が動作しなくなった

これらの挙動が見られる背景として、グループポリシーの適用タイミングが関係しています。Edge拡張機能に関連する[コンピュータの構成]ポリシーが自動的に適用されるタイミングとして、
- 端末(OS)再起動時
- コンピュータ起動後の定期的な更新（既定では90-120分間隔）

の二つが挙げられます。これらの適用タイミングにおいて、Edge拡張機能インストール時に設定されたローカルグループポリシーが上書きされるため、拡張機能が動作しなくなります。
上記の挙動が見られる場合、以下に記載の対応策を実施頂き、事象が解消するかどうかお試しください。

参考：[Microsoft Japan Windows Technology Support Blog - グループ ポリシーの適用](https://jpwinsup.github.io/blog/2022/03/15/ActiveDirectory/GroupPolicy/Applying-Group-Policy/)

# グループポリシーと競合する際の対応方法

## Active DirectoryのグループポリシーにUiPath Edge拡張機能に関するポリシーを追加する

1. Active Directoryの管理者の方にご連携頂き、`ExtensionInstallForcelist`にUiPath Edge拡張機能の拡張機能IDを追加します。追加する拡張機能IDはUiPathのバージョンや拡張機能のインストール方法に依って異なる場合があります。詳細については後述の[拡張機能ID一覧](#EdgeExtensionInstallForceListに追加する拡張機能ID)のセクションをご参照ください。
ExtensionInstallForcelistは[こちらのリンク](https://learn.microsoft.com/ja-jp/deployedge/microsoft-edge-policies#extensioninstallforcelist)に記載のグループポリシーに対応します。


2. 対象の端末において、以下に記載の手順でEdge拡張機能を再インストールします。再インストール後、Edgeを開いて拡張機能が正常に動作するかご確認ください。


### Edge拡張機能のグループポリシーによるオフラインインストール手順

1. 管理者権限でコマンドプロンプトを開きます。
1. コマンドプロンプトより以下コマンドを実行し、Edge拡張機能をアンインストールします
`"C:\Program Files\UiPath\Studio\UiPath\SetupExtensions.exe" /edge-chromium-cleanup`
1. コマンドプロンプトより以下コマンドを実行し、Edge拡張機能をグループポリシーによるオフラインインストールで再度インストールします
`"C:\Program Files\UiPath\Studio\UiPath\SetupExtensions.exe" /edge-policy-offline`


## グループポリシーを使用せず拡張機能をインストールする

こちらの方法では`ExtensionInstallForceList`にUiPathのEdge拡張機能IDが設定されている必要がないため、Active Directory側で`ExtensionInstallForceList`の設定変更・追加が難しい場合に有効です。
以下の手順でEdge拡張機能を再インストールします。

### Edge拡張機能のグループポリシーを使用しないインストール手順

1. 管理者権限でコマンドプロンプトを開きます。
1. コマンドプロンプトより以下コマンドを実行し、Edge拡張機能をアンインストールします
`"C:\Program Files\UiPath\Studio\UiPath\SetupExtensions.exe" /edge-chromium-cleanup`
1. コマンドプロンプトより以下コマンドを実行し、Edge拡張機能をグループポリシーを使用せずにインストールします
`"C:\Program Files\UiPath\Studio\UiPath\SetupExtensions.exe" /edge-chromium-global`
1. 拡張機能のインストール後にEdgeを開き、拡張機能を有効にする旨のダイアログが表示されたら「拡張機能をオンにする」を選択して拡張機能を有効化します。または、`edge://extensions/` にアクセスし、UiPath Browser Automation（またはUiPath Web Automation）の拡張機能のトグルを有効にします。
グループポリシーを使用せずに拡張機能をインストールした場合、このように手動で拡張機能を有効化する必要があります。インストール後に有効化するまで拡張機能が利用できない点にご留意ください。
![EdgeExtensionEnable.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334074/179c41a6-a7ac-625d-43e8-a301193d51d2.png)

尚、グループポリシーに`ExtensionInstallBlockList: *`の設定がされている場合、`ExtensionInstallAllowList`に設定されているIDの拡張機能のみがインストール可能になります。この場合、グループポリシーの`ExtensionInstallAllowList`の項目を確認し、構成されている（有効または無効）場合はUiPathのEdge拡張機能のIDを追加します。

参考：[グループ ポリシーを使用して Microsoft Edge の拡張機能を管理する > グループ ポリシーで拡張機能を許可またはブロックする](https://learn.microsoft.com/ja-jp/deployedge/microsoft-edge-manage-extensions-policies#allow-or-block-extensions-in-group-policy)


## ExtensionInstallForceListに追加する拡張機能ID一覧

グループポリシーによりEdge拡張機能をインストールする際に`ExtensionInstallForceList`に追加する必要がある拡張機能IDの一覧は下表に記載します。各バージョン、インストールに対応する拡張機能IDの詳細については[ List of extensions for Edge ](https://docs.uipath.com/ja/studio/standalone/2023.10/user-guide/edge-extensions)をご参照ください。

<table>
  <tr>
    <th>UiPathバージョン</th>
    <th>オフラインインストール</th>
    <th>オンラインインストール</th>
  </tr>
  <tr>
    <td>v23.10</td>
    <td rowspan="5">    ndmegdjihnhfmljjoaiimbipfhodnbgf;file:///C:/ProgramData/UiPath/UiPath.Common/EdgeExtension_SelfHosted/extension_manifest_edge.xml
</td>
    <td>
    aolkfhjgbinoablafekggeglohbacjih;https://edge.microsoft.com/extensionwebstorebase/v1/crx
    </td>
  </tr>
  <tr>
    <td>v23.4</td>
    <td>dknkgjgkdpkmddgdjlgdhfojlaehikmk;https://edge.microsoft.com/extensionwebstorebase/v1/crx
    </td>
  </tr>
  <tr>
  <td>v22.10</td>
    <td rowspan="3">
    kcgmcmhhfbcacnlnopghneecffhelmhe;https://edge.microsoft.com/extensionwebstorebase/v1/crx
    </td>
  </tr>
    <tr>
    <td>v22.4</td>
  </tr>
    </tr>
    <tr>
    <td>v21.10</td>
  </tr>
</table>


# トラブルシューティング用のTips

## グループポリシーを端末に強制適用する

グループポリシーが適用された後の挙動を確認するためにOSを再起動することも一つの方法です。管理者への昇格が可能な場合、より簡単に確認する方法としてグループポリシーを適用するPowershellコマンドが利用できます。以下のコマンドを管理者権限で実行することによりグループポリシーを適用できます。
```
gpupdate /force
```

参考：
[Microsoft Japan Windows Technology Support Blog - グループ ポリシーの適用](https://jpwinsup.github.io/blog/2022/03/15/ActiveDirectory/GroupPolicy/Applying-Group-Policy/)
[グループ ポリシーを更新](https://learn.microsoft.com/ja-jp/windows-server/networking/core-network-guide/cncg/server-certs/refresh-group-policy)


## 端末に適用されているグループポリシーを確認する

以下のPowershellコマンドを管理者権限で実行することにより、端末とユーザーに対して構成されているグループポリシーを確認できます。
（※事前にC:\testのようなパスを作成しておきます。）
```
gpresult /H C:\test\gpo.html
```

参考：[Windowsコマンド虎の巻](https://windows.command-ref.com/cmd-gpresult.html)


# おわりに

本稿では、UiPathのEdge拡張機能に関連するポリシーと、グループポリシーと競合する場合の対応方法についてご紹介しました。Edge拡張機能で問題が発生した場合のトラブルシューティングの一助になれば幸いです。