サービスは、ログインしない状態で動作するため、実行時のアカウントを設定する必要があります。
デフォルトの状態では、ローカルシステムアカウントで実行されます。実行時のアカウントは、サービスのプロパティからログオンの設定で変更できます。
ローカルシステムアカウントでは、ローカルPCのリソースにのみアクセス権限があり、ネットワークリソースにはアクセス権限がありません。したがって、ネットワークドライブのフォルダを参照するなどの処理を行うとエラーが発生してしまいます。
ネットワークリソースにアクセスする処理がある場合は、適切な権限を付与したアカウントを作成し、そのアカウントをサービスのアカウントに指定する必要があります。
eDocArrangementは起動時にログオンユーザによって以下のフォルダから設定ファイルを読み込みます。
設定ファイルの場所
WindowsXp,WindowsServer2003の場合
C:\Documents and Settings\ユーザ名\Application Data\TechnoStyle\eDocArrangement
WindowsVista,WindowsServer2008の場合
C:\ユーザ(Users)\ユーザ名\AppData\Roaming\TechnoStyle\eDocArrangement
サービスから起動する場合には、サービスのログオンで設定されているアカウントによって設定ファイルを読み込む場所が決定されます。
しかし、ローカルシステムアカウントに設定されている場合は、ログオンユーザが特定できないため、上記のルールで設定ファイルを読み込むことができません。
そこで、eDocArrangementのオプション設定に、「設定の保存時に、AllUsersにiniファイルをコピーする」という項目を用意しました。
そして、eDocArrangementの起動時には、まず、AllUsersフォルダ(以下参照)の設定ファイルを調べて、存在する場合は、読み込みを行い、存在しない場合には、ログオンユーザのフォルダの設定ファイルを読み込むようにしました。
設定ファイルの場所(All Users)
WindowsXp,WindowsServer2003の場合
C:\Documents and Settings\All Users\Application Data\TechnoStyle\eDocArrangement
WindowsVista,WindowsServer2008の場合
C:\ProgramData\TechnoStyle\eDocArrangement
上記フォルダが見つからない場合は、エクスプローラ > ツール > フォルダオプションの表示タブから、「すべてのファイルとフォルダを表示する」を選択し、「保護されたオペレーティングシステムファイルを表示しない」のチェックを外してください。
このAllUsersフォルダの設定ファイルを優先して読み込む仕様は、サービス実行時だけでなく、eDocArrangement本体のフォルダ監視や、プラグインからの実行の際にも適用されます。