2

私はこの奇妙な問題を抱えています - 私はログオン資格情報を提供するChangeServiceConfigために新しくインストールされたサービス (私CreateService自身) を呼び出していますが、関数は成功しますが (TRUE を返します)、サービスを開始しようとすると失敗します1069 (ログオンに失敗しました)。サービスマネージャーにアクセスして資格情報を手動で変更すると (ユーザー名は正しいことがわかりますが、もちろんパスワードはわかりません)、すべて問題なく、問題なく起動します。

呼び出し自体は簡単です:

ChangeServiceConfig(hService, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, NULL, NULL, NULL, NULL, strUser, strPassword, NULL);

私が見るべき場所と何が間違っている可能性があるかについてのアイデアはありますか?

前もって感謝します。

4

1 に答える 1

1

ユーザー アカウントは、サービスとしてログオンする権限を明示的に持っている必要があります ( SeServiceLogonRight)。コンピュータ管理者を含む多くのユーザーは、このフラグを設定していない可能性があり、手動で設定する必要がある場合があります。Windows サービスのコントロール パネルは、サービスの構成に使用するときに、実際にはバックグラウンドでサイレントにこれを行います。

また、ユーザー名を完全に修飾する必要があることについて、漠然とした記憶があります。形式である必要がありDOMAIN\Usernameます-ローカルアカウントの場合は.\Username、マシン名を指定または検索して使用する必要がありますMACHINENAME\Username

于 2008-10-01T00:34:40.883 に答える