概要
RS上で実行されるロボットは『 ロボットの実行権限について』に記載されている通り、RSを実行したユーザーの権限で実行されます。
よって「ファイル読込(Load File)」ステップにおいても、RSの実行ユーザーとしてファイルにアクセスします。
ロボットごとにアクセスしたいフォルダが異なり、フォルダごとにアクセス制限されている場合、「コマンドライン実行(Execute Command Line)」ステップにて「net use」コマンドを実行することで、一時的にアクセス権を付与できます。
※コマンドの実行や内容に関しては、 お客様環境に合わせてて確認の上、実装をご検討ください。
<例>フォルダへのアクセス権限を付与するための「net use」コマンド
net use \\[サーバー名]\[フォルダ] [ドメインのパスワード] /user:[ドメイン]\[ユーザーID]
<例>フォルダへのアクセス権限を削除するための「net use」コマンド
net use \\[サーバー名]\[フォルダ] [ドメインのパスワード] /delete
作業手順
<ロボットでの実行例>
1. 「コマンドライン実行(Execute Command Line)」ステップで、フォルダへのアクセス権限を付与する「net use」コマンドを実行
2. UNC接続(ex. \\server1\public\input\inputdata.xlsx)でファイルの入出力を行う
3. 「コマンドライン実行(Execute Command Line)」ステップで、フォルダへのアクセス権限を削除する「net use」コマンドを実行
注意事項
通常割り当てるドライブ文字に既に使用されているドライブ文字(下図の場合はNドライブ)が指定されていた場合、「net use」コマンドが失敗します。
ロボットで実行する前に、既に使用されているドライブでないか、コマンドラインで確認してください。
既に使用されているドライブだった場合は、コマンドラインでコマンドを実行し、ドライブの割り当てを解除してください。
解除後は、ロボットが正常に実行できるか確認してください。
<コマンド例>
1.割り当てられているドライブを確認
net use
2.ドライブの割り当てを解除
net use [ドライブ名]: /delete /yes
▼ドライブの確認と解除を行うコマンド
net useはOS側のコマンドとなり、ネットワークドライブの接続状態はOS管理下にあるため、
ロボットではドライブの接続状態を保持しません。
そのため、複数ロボットがnet useコマンドにより同じネットワークドライブに接続と切断を行っている場合、
1台のロボットがドライブを利用している最中に、並行して動いている別のロボットがドライブを切断してしまわないよう、
ロボットの実行タイミング等を考慮してください。
補足
ファイルシステムへのアクセス制限により、DSでは問題なく成功するものの、MCからロボットを実行した際に以下のエラーが出力される場合があります。
<エラーメッセージ>
Error from the Extract Target action. Access to file system restricted, cannot read file XXXXX To allow file
system access, check the “Allow File System and Command Line Access” property in the RoboServer Settings application.
ロボット操作が行われる端末(RS/DS)上でファイルシステムとコマンドラインへのアクセスが許可されている必要があるため、RoboServer Settingsの設定を確認してください。
RoboServer Settingsの設定については『Design Studioで正常稼働したRobotが、Management Consoleで実行するとエラーになってしまう場合の原因と対処方法を教えてください。』の ■RoboServer Settingsの「Allow File System and Command Line Access(ファイルシステムとコマンドラインのアクセスを許可)」が設定されていない場合を参照してください。