NetQueryDisplayInformation (NetUserEnum 関数は既に試しました) を使用して、ローカル マシン上のユーザー アカウントのセットを取得しています。この方法ですべてのアカウントを取得できますが、実際の人間に関連付けられたアカウントのみが必要であり、たとえば、ソフトウェアの更新に使用される非表示のアカウントは必要ありません。
関連する構造に関するMSDN ドキュメントと同様のスタックの質問を読んだ後、必要なアカウントだけにフィルター処理できるものは何もありません。
理想的には、誰かが次のようなシンプルで信頼できるソリューションを持っているでしょう:
- 文書化されていないレジストリ エントリを使用しない
- ディスク上のユーザー フォルダーの列挙に依存しない
- 非実ユーザー アカウントの完全なリストを作成しようとするつもりはありません。
- 技術的な理由から、WMI はオプションではありません
何か案は?
[ずっと後] 答えはわかりましたが、ここではありません。各ユーザーのグループを列挙するだけです。「実際の人間」アカウントは、管理者、パワー ユーザー、ユーザー、ゲストの 1 つまたは複数のメンバーになります。