- ベストアンサー
ユーザの所属するグループを取得する
現在ログオン中のユーザが所属するグループ名を取得することは可能でしょうか。 開発環境はVB.NETでOSはXPです。 ユーザ名はSystem.Environment.UserNameで取れることが分かったのですが、 そのユーザが属するグループが取れるのか分かりません。 ご存知の方、よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#1 です。失礼しました・・・ コレなんかはどうでしょうか? C# のコードみたいですけど。
その他の回答 (4)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>それではうまくいかないですよねぇ。 ええっ? String型で"コンピュータ名\グループ名" でうまくいきますよ。 実際、 自分で作ったグループでIsInRoleで試してみましたが、 trueになりました。
お礼
マシンを再起動したらうまくいきました。 OKです。ばっちりです。 ありがとうございました。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#2の参考URLをみたんですけど、 あるグループに所属するかどうか調べたいだけなら 参考URLにも書かれている IsInRole("調べたいグループ名") を使って調べられると思います。 組み込みのグループ名は列挙体で得られるんですけど ユーザー定義のグループのリストの.NETでの取り出し方は、わかりません。 私も知りたいです。
お礼
String型で”コンピュータ名\グループ名”で渡せばいいと書いてあるのですが、それではうまくいかないですよねぇ。 わたしもそれ以上の情報が見つけられませんでした。 なにか分かったら教えてください。 ありがとうございました。
- Azzuri
- ベストアンサー率68% (34/50)
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 以上で、リストボックスの中に所属するグループが 追加されると思います。
お礼
回答ありがとうございます。 VB6ならWIN32APIのNetLocalGroupGetMembersでとれるらしいです。 .NETは基本的にWIN32APIは使わないで済むとマニュアルにあったので、他の方法があるのではとおもって探しております。 ありがとうございました。
- temtecomai2
- ベストアンサー率61% (656/1071)
Environment.UserDomainNmae でも取れますし SystemInformation.UserDomainName でも取れますよ
お礼
回答ありがとうございます。 すみません、ドメイン名じゃなくて、グループ名が取りたいんです。Administratorsとか、PowerUsersとか。 全然回答がないところを見ると無理なのかな・・・。 ありがとうございました。
お礼
ありがとうございます。 そっちの書込みも私のものです。(笑) どうも。