DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ログオン中のユーザー情報を取得したい

環境/言語:[vb6]
分類:[VB6以前]

VB6で現在ログオンしているユーザーがadministratorかどうか
判断したいのですがどうすればよいでしょうか?
■No22788に返信(かーとまんさんの記事)
> VB6で現在ログオンしているユーザーがadministratorかどうか

それは、ワークグループ/ドメインまで考慮したいのでしょうか?
ローカルの Administrators グループと、
ドメインの Administrators グループは別でしょうし。


> 判断したいのですがどうすればよいでしょうか?

Administrators グループに、別のアカウントを追加しておき、元の
Administrator ユーザーは無効にして運用する場合もあるかと思いますが、
その場合はどのように判断したいのでしょうか。


とりあえず、ユーザー名そのものは、
 Debug.Print CreateObject("WScript.Network").UserName
という簡単なコードで得ることができます。ユーザー名が "Administrator" か
どうかだけを調べれば良いのであれば、これで十分かと。


もし、それが Administrators グループにいるかどうかの判定や、
ユーザーの列挙が必要となると、若干面倒なコードになりますけれども。
(グループ内判定ならIsMember メソッド、列挙ならMembersプロパティなど)


Dim oWshNetwork As Object
Set oWshNetwork = CreateObject("WScript.Network")
Dim UserName As String
Dim UserDomain As String
UserName = oWshNetwork.UserName
UserDomain = oWshNetwork.UserDomain

Debug.Print "ユーザー名:[" & UserName & "]"
Debug.Print "ドメイン名:[" & UserDomain & "]"


' Administrators グループの一覧
Dim path As String
path = "WinNT://" & oWshNetwork.ComputerName & "/Administrators"
Dim oGroup As Object
Set oGroup = GetObject(path)

Dim oMemberList As Object
Set oMemberList = oGroup.Members
Dim oMember As Object
For Each oMember In oMemberList
 'Debug.Print oMember.Class
 Debug.Print oMember.Name
Next
■No22789に返信(魔界の仮面弁士さんの記事)
返信ありがとうございます。
判定したいのはローカルの
administratorかどうかです。
■No22789に返信(魔界の仮面弁士さんの記事)
IsMemberの使い方を教えていただけないでしょうか
別の掲示板で過去に同様の質問がありましたよ。
googleで[VB IsMember]をキーに検索するとトップで出てきます。

ユーザにadministrator権限があるかどうか調べるには?
http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200401/200401_04010085.html
■No22796に返信(もょもとさんの記事)
解決しました。
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板