私は過去 4 年間この問題に取り組んでおり、非常に悩まされています。
- 私の会社は、wixツールセットを使用してmsiインストーラを生成し、複数のWindowsサービスを作成します。これらのサービスは、ADサービスユーザーとパスワードで実行されます。サービスは、インストーラUIに入力したユーザーと「パスワード」で作成されますが、常に起動に失敗します。最初に起動するサービスは、"起動"状態。
最終的には、パスワードが間違っていた場合と同様に、サービス ユーザーがロックされます。msi UI に入力したパスワードは正しいことを保証します。
そのため、インストール中に最初のサービスが起動、私はそのサービスを開いてパスワードを更新するだけですログオンタブをクリックして保存すると、魔法のように起動して全て他のサービスも起動します。なぜですか? 他のサービスを動作させるために、1 つのサービスだけのパスワードを変更する必要があるのはなぜですか?
- インストーラーに でサービスを作成させた場合も問題は同じで
LocalSystem
、サービスは問題なく起動します。その後、sc config
他のサービスと同様に、 でサービス ユーザーとパスワードを更新します。同じように、すべてのサービスが起動に失敗します。そのうちの 1 つのパスワードを更新するまで、すべてのサービスが起動します。
何が間違っているのでしょうか? この動作を説明できるものは何でしょうか?
編集: AD サービス ユーザーにサービスとしてログインする権限が実際にあるため、サービスが起動することはありません。編集: 初めて起動に失敗したとき、イベント ログに次のように表示されます: 「xyz サービスは、次のエラーのため、現在構成されているパスワードを使用して DOMAIN\username としてログオンできませんでした: ログオン失敗: このコンピューターでは、要求されたログオンの種類がユーザーに許可されていません。」
後続のエラーはすべて同じです: 「次のエラーのため、xyz サービスを開始できませんでした: ログオンに失敗したため、サービスを開始できませんでした。」
答え1
ログオン権限エラーに関しては、これをリンクします。
サービスは相互に依存していますか?
構文や文字列の解釈に問題がないことをご存知ですか? いくつかの異なる方法で、PowerShell を使用してサービスを作成したり、サービス資格情報を設定したりすることができますが、最初のサービスが開始した後、資格情報を更新せずに残りのサービスが正常に開始されることが示されているようです。
Domain\Username では問題が発生することがあるため、代わりに UPN 形式 username@domain を使用してみてください。