• ベストアンサー

ユーザの所属するグループを取得する

現在ログオン中のユーザが所属するグループ名を取得することは可能でしょうか。 開発環境はVB.NETでOSはXPです。 ユーザ名はSystem.Environment.UserNameで取れることが分かったのですが、 そのユーザが属するグループが取れるのか分かりません。 ご存知の方、よろしくお願いいたします。

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

  • ベストアンサー
回答No.2

#1 です。失礼しました・・・ コレなんかはどうでしょうか? C# のコードみたいですけど。

参考URL:
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=17653&forum=7&1
undisclosed
質問者

お礼

ありがとうございます。 そっちの書込みも私のものです。(笑) どうも。

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

>それではうまくいかないですよねぇ。 ええっ? String型で"コンピュータ名\グループ名" でうまくいきますよ。 実際、 自分で作ったグループでIsInRoleで試してみましたが、 trueになりました。

undisclosed
質問者

お礼

マシンを再起動したらうまくいきました。 OKです。ばっちりです。 ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

#2の参考URLをみたんですけど、 あるグループに所属するかどうか調べたいだけなら 参考URLにも書かれている IsInRole("調べたいグループ名") を使って調べられると思います。 組み込みのグループ名は列挙体で得られるんですけど ユーザー定義のグループのリストの.NETでの取り出し方は、わかりません。 私も知りたいです。

undisclosed
質問者

お礼

String型で”コンピュータ名\グループ名”で渡せばいいと書いてあるのですが、それではうまくいかないですよねぇ。 わたしもそれ以上の情報が見つけられませんでした。 なにか分かったら教えてください。 ありがとうございました。

  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.3

VB6の方法ですが記述します。 Active DS Type Libraryを参照設定します。 Dim dso As IADsOpenDSObject Dim User As IADsUser Dim username As String Dim username2 As String Dim Password As String Dim DomainName As String Dim group As IADsGroup username = "ユーザー名" username2 = "管理者ユーザー名" Password = "管理者パスワード" DomainName = "ドメイン名" Set dso = GetObject("WinNT:") Set User = dso.OpenDSObject("WinNT://" & DomainName & "/" & username & ",user", username2, Password, 1) For Each group In User.Groups List1.AddItem group.Name Next 以上で、リストボックスの中に所属するグループが 追加されると思います。

undisclosed
質問者

お礼

回答ありがとうございます。 VB6ならWIN32APIのNetLocalGroupGetMembersでとれるらしいです。 .NETは基本的にWIN32APIは使わないで済むとマニュアルにあったので、他の方法があるのではとおもって探しております。 ありがとうございました。

回答No.1

Environment.UserDomainNmae でも取れますし SystemInformation.UserDomainName でも取れますよ

undisclosed
質問者

お礼

回答ありがとうございます。 すみません、ドメイン名じゃなくて、グループ名が取りたいんです。Administratorsとか、PowerUsersとか。 全然回答がないところを見ると無理なのかな・・・。 ありがとうございました。

関連するQ&A

専門家に質問してみよう