ユーザが所属するグループを列挙

投稿の使いまわし。(^^;

using System;
using System.Management;

class Program {

  [STAThread]
  static void Main(string[] args) {
    // ドメインとユーザを指定して所属するグループを取得するクエリー
    string s = String.Format("select * from Win32_GroupUser where " 
      + "PartComponent=\"Win32_Account.Domain='{0}',Name='{1}'\"", 
      Environment.UserDomainName, Environment.UserName);

    // クエリーの実行
    SelectQuery query = new SelectQuery(s);
    ManagementObjectSearcher ms = new ManagementObjectSearcher(query);

    Console.WriteLine("{0}\\{1}が所属するのは、", Environment.UserDomainName, Environment.UserName);

    foreach (ManagementObject mo in ms.Get()) {
      // グループのパスを取得する
      string path = mo["GroupComponent"].ToString();
      // パスからグループオブジェクトを作成
      ManagementObject go = new ManagementObject(path);
      // グループの名前を取得
      Console.WriteLine(go["Name"]);
    }
  }
}

/* 結果
PRIME64\meiが所属するのは、
Administrators
Debugger Users
 */