none
Local Systemで起動されているwindowsサービスでCreateProcessWithLogonWを使用すると、access denied RRS feed

  • 質問

  • 以下のような構成で開発を行っています。c++プログラムは呼び出せているようですが、access deniedが返ってきてしまいます。

    動作環境

    Windows Server 2008 R2

    C++プログラムは、VS 2008 Premium 64bit環境で、64bitアプリとしてビルド

    Javaで作成したwindowsサービス

    (Local Systemで起動。要件上、起動ユーザーは変更不可です。)

    ↓ Runtime.exec

    C++で作成したプログラム(xxx.exe)

    ↓ CreateProcessWithLogonW でドメインユーザーを指定

    powershellをドメインユーザーで起動

    (PSconsoleオプションでExchangeのスナップインを指定し、-Commandで指定したDBディスマウント等のExchangeコマンドレットを実行)

    Access Denied  エラーコード 5が返却される。

    なお、windowsサービスからではなく、ローカルのAdministratorでログインして、

    コマンドプロンプトからxxx.exeを実行したところ、正常にコマンド実行できました。

    また、検証としてWindowsサービスをドメインユーザーで起動したところ、期待通りに動作しました。

    (当然の結果とは思われますが。。)

    windowsサービスを経由していることが問題なのか、Local SystemでCreateProcessWithLogonWを実行するには別途設定などが必要なのか、これだ!という情報にたどり着けずに困り果てております。

    お心当たりのあるかた、どうかご助力頂けないでしょうか。よろしくお願い致します。



    2013年3月7日 16:34

回答

  • CreateProcessWithLogonW()のドキュメントには、

    Windows XP with SP2 and Windows Server 2003:  You cannot call CreateProcessWithLogonW from a process that is running under the "LocalSystem" account, because the function uses the logon SID in the caller token, and the token for the "LocalSystem" account does not contain this SID. As an alternative, use the CreateProcessAsUser and LogonUser functions.

    と書かれていますが、確認されていますか? 対象環境とは違いますが、現象は一致していますし、ここで提案されているCreateProcessAsUser()は試されたのでしょうか?

    • 回答の候補に設定 佐伯玲 2013年3月11日 6:13
    • 回答としてマーク 佐伯玲 2013年3月13日 1:38
    2013年3月7日 22:08

すべての返信

  • CreateProcessWithLogonW()のドキュメントには、

    Windows XP with SP2 and Windows Server 2003:  You cannot call CreateProcessWithLogonW from a process that is running under the "LocalSystem" account, because the function uses the logon SID in the caller token, and the token for the "LocalSystem" account does not contain this SID. As an alternative, use the CreateProcessAsUser and LogonUser functions.

    と書かれていますが、確認されていますか? 対象環境とは違いますが、現象は一致していますし、ここで提案されているCreateProcessAsUser()は試されたのでしょうか?

    • 回答の候補に設定 佐伯玲 2013年3月11日 6:13
    • 回答としてマーク 佐伯玲 2013年3月13日 1:38
    2013年3月7日 22:08
  • こんにちは、BLACK_LOLA150 さん
    フォーラムオペレータの佐伯 玲 です。

    その後佐祐理 さんからの情報はご確認いただけましたでしょうか?
    参考になる情報だと思われたので勝手ながら私のほうで「回答としてマーク」とさせて頂きました。

    ご確認いただけた際にはその経過や結果をご返信いただけますと今後スレッドを見る方にもより有益な情報としてスレッドを今後もご活用いただけます。

    宜しくお願いいたします。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレータ 佐伯 玲

    2013年3月13日 1:38