プロが教えるわが家の防犯対策術!

現在ログオン中のユーザが所属するグループ名を取得することは可能でしょうか。
開発環境はVB.NETでOSはXPです。

ユーザ名はSystem.Environment.UserNameで取れることが分かったのですが、
そのユーザが属するグループが取れるのか分かりません。

ご存知の方、よろしくお願いいたします。

A 回答 (5件)

#1 です。

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

参考URL:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …
    • good
    • 0
この回答へのお礼

ありがとうございます。

そっちの書込みも私のものです。(笑)

どうも。

お礼日時:2004/12/22 11:47

>それではうまくいかないですよねぇ。


ええっ?
String型で"コンピュータ名\グループ名"
でうまくいきますよ。
実際、
自分で作ったグループでIsInRoleで試してみましたが、
trueになりました。
    • good
    • 0
この回答へのお礼

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

ありがとうございました。

お礼日時:2004/12/24 11:37

#2の参考URLをみたんですけど、


あるグループに所属するかどうか調べたいだけなら
参考URLにも書かれている
IsInRole("調べたいグループ名")
を使って調べられると思います。

組み込みのグループ名は列挙体で得られるんですけど
ユーザー定義のグループのリストの.NETでの取り出し方は、わかりません。
私も知りたいです。
    • good
    • 0
この回答へのお礼

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

なにか分かったら教えてください。
ありがとうございました。

お礼日時:2004/12/23 02:34

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

以上で、リストボックスの中に所属するグループが
追加されると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

VB6ならWIN32APIのNetLocalGroupGetMembersでとれるらしいです。

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

ありがとうございました。

お礼日時:2004/12/22 13:42

Environment.UserDomainNmae でも取れますし


SystemInformation.UserDomainName でも取れますよ
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

すみません、ドメイン名じゃなくて、グループ名が取りたいんです。Administratorsとか、PowerUsersとか。

全然回答がないところを見ると無理なのかな・・・。


ありがとうございました。

お礼日時:2004/12/22 10:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています