概要
The Process
C++ でコンパイルされた exe/dll を実行する
シナリオ
- 標準ユーザー アカウント (管理者なし) にログイン (win 7)
- 管理者として実行
The Process
The Process
ShellExecuteを使用してアプリ (exe) を開きます
問題
アプリは管理者ユーザーのスコープで開かれます
期待
アプリは標準ユーザーの範囲で開かれます
ソリューション
1.CreateProcessAsUser
CreateProcessAsUserを使用します(問題を解決する必要があったと仮定してhToken
)。
ただし、エラーコード1314 - ERROR_PRIVILEGE_NOT_HELDで呼び出しが失敗しました。ドキュメントに戻ると、次のことがわかります。
この関数が ERROR_PRIVILEGE_NOT_HELD (1314) で失敗した場合は、代わりに CreateProcessWithLogonW 関数を使用してください。
だから私は掘り下げて、このCreateProcessAsUser Error 1314を見つけましたが、これはあまり役に立ちませんでした。
2.ImpersonateLoggedOnUser
ImpersonateLoggedOnUserを使用すると、同じエラー コードが生成されました: 1314 - ERROR_PRIVILEGE_NOT_HELD。
3.CreateProcessWithLogonW
CreateProcessWithLogonWlpPassword
には、当然私が持っていないものが必要です
質問
管理者プロセスは、ログインしているユーザーでどのようにアプリケーションを開くことができますか?