管理者プロセスから呼び出された場合、またはそのユーザーと将来的には Windows サービスによって呼び出された場合に、C++ コードでコンソール ユーザーをログオフする機能が必要です。私が直面している問題は、ExitWindowsEx がそれを呼び出したユーザーのみをログオフすることです。管理者プロセスがログオフを呼び出しても、コンソール ユーザーは影響を受けません。これを行うことができると私が知っている唯一のアプリケーションは、psShutdown.exe です。ただし、psShutdown は管理者のみが実行できます。コンソール ユーザーを識別し、そのユーザーに対してログオフを行う方法を C++ で知っている人はいますか? psShutdown 内の魔法とは何ですか? WindowsXP以降で動作するものを探しています。また、一部のマシンは Windows Embedded を実行しており、WMI を備えていないため、WMI を使用できません。
(psShutdown.exe を管理者として実行する必要があるのは、サービスをインストールするためであり、通常のユーザーにはこれを行う権限がないためです。)