2012-01-10 2 views
2

私はC#のマシン上でCreateServiceへのwin32 API呼び出しを使用してサービスを作成しています。その関数のMSDNページには、lpServiceStartNameパラメータについての情報が記載されています。lpServiceStartNameエラーでローカルドメインを明示的に指定するときにCreateServiceを呼び出す

サービスを実行するアカウントの名前。 サービスタイプがSERVICE_WIN32_OWN_PROCESSの場合は、 という形式のドメイン名\ UserNameのアカウント名を使用します。サービスプロセスは このユーザーとしてログオンします。アカウントが組み込みドメインに属している場合は、 。\ UserNameを指定することができます。

リモートマシンでは、ユーザmyuserはデフォルトのローカルドメインWORKGROUPに属しています。 ".\myuser"に合格すれば、すべて正常に動作します。 "WORKGROUP\myuser"に合格すれば、私はERROR_INVALID_SERVICE_ACCOUNTになります。上記のドキュメントは、私ががない私必須こと、.\myuserを指定することができると言うように見えるよう

私は、この行動について興味があります。誰もこれにどのような光を当てることができますか?

+0

問題に関して進捗しましたか?私の皿にも同様の問題があるかもしれません... –

答えて

1

まず、私はWindowsアカウント管理の専門家ではなく、ここでいくつかの下書きを取得するかもしれませんが、ここで私がWindowsサービスのログオンIDをテストしていたときに気づいたことはあります。 ドキュメントが示すように、アカウントがビルトインドメインに属している場合は、 "。\ UserName"を指定できます。組み込みドメインには、OSがインストールされたときに作成されるグループとユーザーが含まれます(link)。 したがって、 "。\ UserName"の代わりに、 "BUILTIN \ UserName"を指定することができます。なぜなら、BUILTINは組み込みドメインの名前であるからです。

実際には、 "BUILTIN \ Administrators"と "BUILTIN \ Guests"では機能しましたが、 "BUILTIN \ Guest"というユーザーでは機能しませんでした。 新しいローカルグループとローカルユーザーを作成してログオンIDとして設定しようとしても、 "。\ UserName"という形式で表示されます。これはドキュメントでは不正確かもしれませんが、いずれの場合も、組み込みアカウントではないローカルユーザーアカウントの場合は、ドットをマシン名 "MACHINE \ UserName"に置き換えることができます。

関連する問題