マシンで新しい Windows サービスを作成するとき、「実際の」資格情報でサービスを実際に開始する前に、自分のアカウントで実行される EXE を実行する必要があります。
コマンドを使用してsc
、サービスを作成、構成、および開始しています。
sc create "Presto Self Updating Service Host" binPath= "C:\Program Files (x86)\Presto\Presto Self Updating Service Host\SelfUpdatingServiceHost.exe"
sc config "Presto Self Updating Service Host" obj= "serviceAccount" password= "pw" start= auto
sc start "Presto Self Updating Service Host"
サービスのプロパティに移動してパスワードを手動で入力するまで、サービスは開始されません。これにより、サービス アカウントは "サービスとしてログオンする権利" を取得します。私はそれを自動化しようとすることをあきらめました。そのため、その部分を実行した後、サービスを開始すると、次のエラー メッセージが表示されます。
障害に関するイベント ログには何もありません。だから私は自分でEXEを実行しています。それはうまくいきます。次に、EXE を閉じて (serviceAccount ユーザーで) サービスを開始すると、機能します。最初に私として実行すると、最終的に他のユーザーとして動作するようになる理由は何ですか?