• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「管理者として実行」された場合の一時的な降格方法)

「管理者として実行」された場合の一時的な降格方法

このQ&Aのポイント
  • Administrator以外のユーザでログオンし、プログラムを右クリックして「管理者として実行」をすると、問題が発生します。
  • プログラム内で「subst」を行い、仮想ドライブを作成している場合、管理者として実行した場合には仮想ドライブにアクセスできなくなります。
  • プログラム内で事前にログオンユーザとして実行し、その後substを行うか、管理者として実行できないようにする方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.2

そうでっか じゃ これ参考になるかな? 下に下に http://dev.activebasic.com/egtra/?p=166 SetTokenInformation で・・・

lhouse
質問者

お礼

リンク先がアクセスできませんでした。。。 FireFoxのソースに参考になるものがあったので、 CreateProcessWithTokenWで、substを実行するように したらうまくいきました。 http://mxr.mozilla.org/firefox/source/toolkit/xre/nsWindowsRestart.cpp

その他の回答 (1)

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.1

制限つきトークンを使えば出来るかな? CreateRestrictedToken の LUA_TOKEN で試してみてください Googleで検索してね

lhouse
質問者

補足

回答ありがとうございます。 OpenProcessToken→ CreateRestrictedToken→ ImpersonateLoggedOnUser→ ShellExecute→ RevertToSelf という流れで、プログラムを組んでみましたが、 うまく行きませんでした。 (LUA_TOKENがどのheaderに定義されているのか不明だったので 0x4としてコーディングしましたが)

関連するQ&A