[UiPath] よくわかるUnattendedロボット(イントロ編)

こんにちは。[UiPath Friendsコミュニティ](https://uipath-friends.doorkeeper.jp/)運営メンバの @masatomix です。

## イントロ

今回のテーマは、オンプレ版の Unattended ロボットです。

UiPath の Unattendedロボット(以下UR)って、Attendedロボット(以下AR)とちがい、**マシンキーにライセンスを割り振ったり**、どの単位でマシンキーを共有すれば良いのかわからなかったり、使うには**フォルダにマシンテンプレートを登録**しなくちゃいけなかったり、ユーザモードやサービスモードでの挙動の違いがあったりと、いろいろややこしいところが多いですよね。

というわけで、それらを整理していこうと思います。
今回は超基本型(？)となる、1台構成の環境構築手順を動画にまとめました。



## 対象のかた・動作環境

- すこしはUiPath Orchestratorを知ってる・触ったことがあるよ、という方を想定しています。
- ぼんやりとUnattendedロボットは使ってるけど、もうすこし細かく知りたいなぁ、という方。



## コレをやったらできること

- オンプレのUiPath Orchestratorで、1台構成でUnattendedロボットの環境を構築しサンプルワークフローを動かすことが出来るようになります。


## 今回は超基本型 

### 前提の環境

| 環境の項目 | 値   |
| ------ | ---- |
| Orchestrator | オンプレのOrchestrator 2020.10.7 |
| Robot | UiPath Robot (v20.10.9) /サービスモード |


![orch-Qiita](https://imgur.com/oIBujW4.png)



この環境に、以下の設定を行っていきます。

| マシンの項目 | 値   |
| ------ | ---- |
| PC名 | s001 |
| マシンテンプレート名 | s001_template |
| Unattended ランタイム (実行スロット) | 1 |

表の通り、このマシンテンプレートにはUnattended ランタイムを1つ、割り当てることにします。



さてその他の設定です。
最終的に**PC上で下記のワークフローが実行できること**が目的です。

| その他項目 | 値                                                           |
| ---------- | ------------------------------------------------------------ |
| ユーザ     | ad\user001 (ドメインアカウント) <br>(ドメインアカウントである必要性はナシ。たまたま。) |
| フォルダ     | f001 |
| ワークフロー     | ModernTest (Hello World的な) |

これらの設定もあわせて図示すると、下記の通り。

![orch](https://imgur.com/tjscGHz.png)



### 作業内容

- PCに、ローカル管理者アカウント(administrator)でWindowsにログイン
- UiPath Robot (v20.10.9)をサービスモードでインストール
- Orchestrator(以下OC)に、adminでログイン
- マシンテンプレート作成 (s001_template)
- OCユーザ ＆ UR作成( ad\user001)
- PCからRobot Assistantで接続 。**Windowsにはadministratorでログインしているので、Assistant上はライセンスなし**となる(想定通りなので気にしない)
- フォルダのセットアップ
    - フォルダ作成(f001)
    - 先のユーザ(ad\user001) 割り当て
    - 先のマシンテンプレート(s001_template) 割り当て
    - プロセス登録
- administrator をサインアウト
- 別PCから、ワークフロー実行。s001にad\user001で自動でログインされて、ワークフロー(ModernTest)が実行される。

### 動画はこちら

https://youtu.be/cbYDwK4AArg?list=PLa6DCBgbi2crKzli4ddRwwhkuo4ldJVv5

がんばってやってみましょうー。

### やってみて分かることや、補足の説明

- URは、Robot Assistantを用いた**接続オペを行った時にライセンスを消費**する。**切断したらライセンスを解放**する。
- URは、インストーラのデフォルト値だと**サービスモードとしてインストール**される 。つまりRobot Assistantが起動しているか、またPCにログインしているかなどに関わらず、**サービスとして起動してOCからの指示を待ち受け**ている。
- そしてRobot Assistantで接続操作をおこなうとその後は、 **PCが起動していればライセンスを消費**する。再起動しても自動で再接続する。
- マシンテンプレートはいくらでも作れるし、URを自動生成するユーザもいくらでも作成できる[^1]。
- テナント>>ロボットの一覧ですが、URはワークフローを実行中のときですら接続中のステータスにはならず、Robot Assistantを起動すると接続状態となる[^2]。
- ローカルアカウントのadministratorとかでインストール作業すると**マシンキー接続した瞬間はライセンスなしとなってアセる**けど、動じない。administratorのアカウントを持ったURを作成していないからですね。

サービスモードでの利用を想定する Unattended ロボットは **マシンキーによって「PCを接続する感覚」**といえますね。
一方、ユーザモードでの利用を想定するAttended ロボットは、特に対話型サインインをする際により顕著ですが「対話型サインインをしたユーザ」がロボットを使える、つまり「**ヒトを接続する感覚**」といえます。

ハンズオンとかだと管理者権限のアカウントひとつで、インストールから接続設定、ワークフロー実行までやっちゃうことが多いですが、今回はあえて、アカウントに関係なく**PCを接続する臨場感(**？)を出すため、ワークフローを実行するアカウントと接続設定する管理者アカウントを分けて操作してみました[^3]。

今回は基本型なので、あまり目新しいところは出てきませんでした。
**次回は、複数PCを準備したばあい、マシンテンプレートなどにどんな設定を入れればいいかを検討**しようとおもいます。

-- **2021/09/06追記** --
次回記事、書きました
[[UiPath] よくわかるUnattendedロボット(同時実行編)](https://qiita.com/masatomix/items/7a8d9c6904d71303aa56)
-- **2021/09/06追記** --


おつかれさまでした！

[^1]:  1テンプレあたりの実行スロット数は、ライセンス数以下である必要がある
[^2]: なんだかわかりにくい┐('〜`;)┌
[^3]:  実際、OC画面上でのマシンキーの閲覧にはTenant Administratorとか管理者にふるような高めのロールが必要だし、マシンキーをセットするRobot Assistantのダイアログも、Windowsの管理者アカウントでないと操作できなかったりします。



## 関連リンク

- [UiPath Orchestrator のバージョンその他による挙動の違いにぐったりきたので整理(用語集)](https://qiita.com/masatomix/items/48a6cd104be52c53a618) 用語集です
- [よくわかるモダンフォルダ(イントロ編)](https://qiita.com/masatomix/items/686b6af4fac69a0b18a3) オンプレOC 2020.10.7 とサービスモードのロボット 向けの記事。
- [クラウド版 UiPath Orchestrator 2021.x版のサインアップからロボット実行までの手順ご紹介(よくわかるモダンフォルダ番外編)](https://qiita.com/masatomix/items/a200c2ab6f03fc430bb5) クラウドOC21.7.x Community版と、ユーザモードのロボット向けの記事 
- [2種類のロボット接続【UiPath Orchestratorをもっとよく知る動画シリーズ】#11](https://www.youtube.com/watch?v=0UVokA3urtE&list=PLQBe36ilIwgj8MBS84ZYShooKcit61w5q&index=11) 公式。おなじような内容だけどもっと丁寧に解説されてますね! (クラウド版でOC2021ベースだけどね)
- [[UiPath] よくわかるUnattendedロボット(同時実行編)](https://qiita.com/masatomix/items/7a8d9c6904d71303aa56) 次回記事