ユーザーがマシンにログインしていない限り実行されない、基本的にファイルウォッチャーであるWindowsサービスを作成しました。サービスは Windows Server 2003 マシンで実行されています。ファイル名のキーワードに基づいて、あるディレクトリに配置されたファイルを別のディレクトリに移動するように設計されていますが、ログオンするまでファイルは移動せず、すべてのファイルが一度に移動します。
3 に答える
おそらく、特定のユーザーとしてログオンするようにサービスを設定し、サービスにアクセスしてみて、サービスをダブルクリックして「アカウントとしてログイン」を選択し、アカウントの詳細 (ドメイン\ユーザー名とパスワード) を入力する必要があります。
LocalService アカウントには広範な権限がありますが、たとえば、特定のユーザーのファイル/フォルダーに対する権限がない場合があります。別の方法として、LocalService アカウントにファイル権限を具体的に付与することもできます。ただし、1 分間の作業なので、最初に「ログイン」のトリックを試してみます。それが機能する場合は、サービスを実行するための特定のアカウントを作成するか、代わりに LocalSystem に権限を付与します。
ところで:ネットワーク化されたファイルの場合は、NetworkedService アカウントを試すことができます。
サービスの設定に問題があるはずです。Windows Server では、ユーザーがログインせずにアプリケーションを実行しても問題はありません (ログインしていない場合、スケジュールされたタスクはあまり役に立ちません)。
どのようにサービスをインストールしましたか?
いくつかの説明が必要です。
- あなたが言及した
ユーザーがマシンにログインしていない限り実行されないファイルウォッチャー
これはどのように実装されていますか?一般に、各 Windows サービスは独立したセキュリティ コンテキストを使用して異なる Windows ステーションで実行されるため、マシンの起動時にサービスが自動的に開始されます。
- あなたも言及します
しかし、ログオンするまでファイルは移動しません
これは最初のポイントと矛盾していませんか?これが実装されているためです。[上記の点が実装されていることを前提としています]
- サービスは特別なアカウントで実行するように構成されていますか?
- サーバーは、ファイル システム上のファイルを移動する特別な権限を必要とするように構成されていますか?