前提があるんです
最初はぱぱーっと方法だけ書こうかと思ったんですが、副作用が色々起きうるので、原理や事情の説明からします。おっさんの長話に付き合ってください。
自動ログイン、やりたいよね
UiPath Community Editionでは、OrchestratorからのUnAttended Robotについて、初期設定では
- すでにログインしているユーザーの、画面ロックを解除して動作 → できる
- Windows起動直後(ログイン前)で放置されている状態での自動ログイン → できない
という特徴があります。(Enterprise Editionでは両方ともできます)
これは別にライセンス上の制限ではなく、UiPath Enterprise Editionと、UiPath Community Editionの、インストール方式の違いによる制約になります。
なぜできないのか
当たり前ですが、基本的にはWindowsで、ユーザーがログインする前には、そのユーザー権限でアプリは起動できません。何しろユーザーが居ないからです。
そこでUiPath Enterprise Editionでは、ユーザーではなくサービスとして登録することで、Windowsユーザーが居ない状態でもRobotが待機状態になります。
ところで、UiPath Enterprise Editionは、デフォルトのインストール先は、C:\Program Files (x86)\UiPath\Studio
になります。これは、そのWindows環境で、どのユーザーも特に縛りがなく参照できる場所です。
他方、Community Editionのインストール先は、C:\Users\(ユーザー名)\AppData\Local\UiPath
になります。
(上記は両方とも、厳密には環境変数を参照して決定されますが、本筋ではないので省きます)
なぜこんな違いがあるのかというと、Community Editionは自動でバージョンアップを行う機能があります。しかし、C:\Program Files (x86)
配下のフォルダは、書き込みに管理者権限が必要になります。そうすると自動アップデートがかかるたびに管理者権限が要求されることになります。
よくあるコレっすよ、コレ。
そこでUiPath Community Editionは、ログインユーザー(≒起動ユーザー)が自由に書き込める場所にインストールすることで、上記の制限を回避しています。
UiPath Community Editionで自動起動できない問題の根っこは、逆にこの設定による弱点が原因です。ユーザー固有のディレクトリディレクトリであるということは、他のユーザーからの読み込み・書き込みは、色々制限がかかるということでもあります。
故に、そんな場所にあるものをサービスとして登録すると、他のユーザーでの起動時に整合性に問題が出る可能性があるんですね。
つまりですね、ここから先に書く手順は、複数ユーザーが同じWindows PCを使っている環境でやると、色々と不具合を引き起こす可能性がありますというところを、重々ご承知ください。
あともう1つ。
上にも書きましたが、UiPath Community Editionは、自動でバージョンアップがかかります。当然、バージョンアップごとにモジュールは変化します(更新されます)
サービスとしての登録の解除・再登録は自動バージョンアップではやってくれないので、自動バージョンアップがかかったら、即座に設定をやりなおす必要があります、というのを忘れないでください。
忘れたらどうなるか、正直わかりません。まあPCが壊れたりとかはないと思いますが、Windowsの起動時にエラーが出るとか、UiPath StudioやUiPath Robotが起動しなくなるぐらいはざらに発生する可能性があります。しょうがないよね、サービス関連の処理がおかしくなるから。
つまりですね
上につらつら書いた事情や、設定のリスクをきちんと理解してやってくださいね。壊れたって言われても筆者は責任とれないゾ。
具体的な手順
手順そのものはそんなには難しくないです、多分。
あとここに書いてるのは、UiPath Studio Community Edition 19.10.2の仕様です。そのうち変わるかもしれないので、そこはご了承ください。
(知ってる限り、2018.2ぐらいからほとんど変わってない部分なので、そうそう変わらないとは思うけど)
というか、基本的には、ここに書いてあることの応用です。
まず前提(下記のパターン1~3共通)として、管理者権限でコマンドプロンプトを起動してください。
そして、CD %LOCALAPPDATA%\UiPath
します。
あと、それとは別に、エクスプローラでC:\Users\(ユーザー名)\AppData\Local\UiPath
を開いておいてください。
パターン1: とりあえず初回(Community Editionインストール後)
以下のコマンドを実行します。
TaskKill /F /IM UiPath.Agent.exe
TaskKill /F /IM UiPath.Service.UserHost.exe
失敗(見つかりませんでした)のエラーが出ることがありますが、気にしなくていいです。
次に、CD app-xx.xx
を入力します。xx.xxは、その時点での最新版のフォルダ(上記エクスプローラーで開いて確認する)です。ベータフィードだと app-xx.xx-bata000
みたいな形式の可能性がありますが、その場合もその通りに入力してください。
うまくディレクトリを移動できたら、UiPath.Service.Host install
を実行します。
あとは、Windowsのサービス管理を立ち上げて、UiRobotSvcがインストールされていることを確認し、
スタートアップの種類は「自動(遅延開始)」に設定してやると良いと思います(自動でそうなってる筈ですが)
あと、上記手順では初回の起動がされないので、「開始」ボタンを押してやりましょう。特にエラーが出ず起動したら成功です。わーわーぱちぱち。
パターン2: UiPath Community Editionの自動バージョンアップが走ったあと
ここから先は面倒なのでコマンドしか書きません。一度やったことだからだいたいわかるよねって感じ。
まず、コマンドプロンプトで、 Net Stop UiRobotSvc
して、稼働中のサービスを止めます。
次に、**古いバージョン(現在サービスを稼働させているバージョン)**のフォルダにCD app-xx.xx
で移動して、UiPath.Service.Host.exe uninstall
で登録を解除します。
最後に、**新しいバージョン(更新されたバージョン)**のフォルダにCD ..\app-xx.xx
で移動して、UiPath.Service.Host install
しましょう。(最後の手順から先は、パターン1と同じです)
上にも書きましたが、自動バージョンアップごとにこの作業を忘れないようにしないと、どんな不具合が出るかわかりません。自己責任でやるんですよ!いいですね!
パターン3: サービスを削除する
自動起動を使わなくなったとか、パソコンからUiPath Studio Community Editionをアンインストールするとかになったら、この手順が必要です。
まず、コマンドプロンプトで、 Net Stop UiRobotSvc
して、稼働中のサービスを止めます。
次に、**古いバージョン(現在サービスを稼働させているバージョン)**のフォルダにCD app-xx.xx
で移動して、UiPath.Service.Host.exe uninstall
で登録を解除します。要するにパターン2の途中(サービスの削除だけ)で止める感じです。
最後に
繰り返しますが自己責任でお願いします。ライセンス的にNGな要素はない筈ですが、公式に案内されている使い方じゃないので、何かあったら自分で解決しないといけないYO!