Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
224to228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
224to228
224to228
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Name einer Benutzergruppe auslesen (z.B.: Win NT)

Name einer Benutzergruppe auslesen (z.B.: Win NT)
04.03.2003 23:20:24
Thorsten
Moin,
ich muß Euch noch einmal fragen:
Durch die Funktion für den Benutzernamen-

Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
Sub ShowUserName()
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
GetUserName Buffer, BuffLen
MsgBox Left(Buffer, BuffLen - 1)
End Sub

-wird anscheinend aus der advapi32.dll der angemeldete Benutzer ausgelesen, kann ich hier auch die Benutzergruppe auslesen??
Und wenn ja, wie??


7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Name einer Benutzergruppe auslesen (z.B.: Win NT)
05.03.2003 07:10:23
GerdZ

Hallo Thorsten,

versuchs mal mit der Environ-Variablen USERDOMAIN
oder dem Registry-Eintrag AuthenticatingAgent unter dem Schlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSNP32\NetworkProvider

Gruß
Gerd

Re: Name einer Benutzergruppe auslesen (z.B.: Win NT)
05.03.2003 07:43:52
Klaus

Moin Thorsten,
versuchs mal hiermit.
Ist nicht auf meinem Mist gewachsen. Hab ich irgendwann mal von den M$-Seiten geholt. Unter W2K funktioniert es.

Gruß Klaus

Option Compare Database
Option Explicit
Type WKSTA_INFO_101
wki101_platform_id As Long
wki101_computername As Long
wki101_langroup As Long
wki101_ver_major As Long
wki101_ver_minor As Long
wki101_lanroot As Long
End Type

Type WKSTA_USER_INFO_1
wkui1_username As Long
wkui1_logon_domain As Long
wkui1_logon_server As Long
wkui1_oth_domains As Long
End Type

Declare Function WNetGetUser& Lib "Mpr" Alias "WNetGetUserA" _
(lpName As Any, ByVal lpUserName$, lpnLength&)
Declare Function NetWkstaGetInfo& Lib "Netapi32" _
(strServer As Any, ByVal lLevel&, pbBuffer As Any)
Declare Function NetWkstaUserGetInfo& Lib "Netapi32" _
(reserved As Any, ByVal lLevel&, pbBuffer As Any)
Declare Sub lstrcpyW Lib "kernel32" (dest As Any, ByVal src As Any)
Declare Sub lstrcpy Lib "kernel32" (dest As Any, ByVal src As Any)
Declare Sub RtlMoveMemory Lib "kernel32" _
(dest As Any, src As Any, ByVal size&)
Declare Function NetApiBufferFree& Lib "Netapi32" (ByVal buffer&)

Function GetWorkstationInfo()
Dim ret As Long, buffer(512) As Byte, i As Integer
Dim wk101 As WKSTA_INFO_101, pwk101 As Long
Dim wk1 As WKSTA_USER_INFO_1, pwk1 As Long
Dim cbusername As Long, username As String
Dim computername As String, langroup As String, logondomain As _
String

' Clear all of the display values.
computername = "": langroup = "": username = "": logondomain = ""

' Windows 95 or NT - call WNetGetUser to get the name of the user.
username = Space(256)
cbusername = Len(username)
ret = WNetGetUser(ByVal 0&, username, cbusername)
If ret = 0 Then
' Success - strip off the null.
username = Left(username, InStr(username, Chr(0)) - 1)
Else
username = ""
End If

'==========================================================
' The following section works only under Windows NT
'==========================================================

'NT only - call NetWkstaGetInfo to get computer name and lan group
ret = NetWkstaGetInfo(ByVal 0&, 101, pwk101)
RtlMoveMemory wk101, ByVal pwk101, Len(wk101)
lstrcpyW buffer(0), wk101.wki101_computername
' Get every other byte from Unicode string.
i = 0
Do While buffer(i) <> 0
computername = computername & Chr(buffer(i))
i = i + 2
Loop
lstrcpyW buffer(0), wk101.wki101_langroup
i = 0
Do While buffer(i) <> 0
langroup = langroup & Chr(buffer(i))
i = i + 2
Loop
ret = NetApiBufferFree(pwk101)

' NT only - call NetWkstaUserGetInfo.
ret = NetWkstaUserGetInfo(ByVal 0&, 1, pwk1)
RtlMoveMemory wk1, ByVal pwk1, Len(wk1)
lstrcpyW buffer(0), wk1.wkui1_logon_domain
i = 0
Do While buffer(i) <> 0
logondomain = logondomain & Chr(buffer(i))
i = i + 2
Loop
ret = NetApiBufferFree(pwk1)

'==========================================================
'End NT-specific section
'==========================================================

End Function

Anzeige
Re: Name einer Benutzergruppe auslesen (z.B.: Win NT)
05.03.2003 07:55:56
Klaus

Da war doch noch was,
der in vorigem Post enthaltene Code läuft unter Access2000.
Kann für Excel vielleicht etwas anders aussehen.
"Option Compare Database" und "Option Explicit" brauchst du da sicher nicht. ;-)
Ansonsten mal direkt bei M$ versuchen.
Gruß Klaus


Re: Name einer Benutzergruppe auslesen (z.B.: Win NT)
05.03.2003 08:23:24
Michael Scheffler

Hallo Klaus,

Option Explicit sollte man IMMER schreiben!!!

Gruß

Micha

Re: Name einer Benutzergruppe auslesen (z.B.: Win NT)
05.03.2003 08:34:32
Klaus

Moin Micha,
stimmt, war nicht ganz bei der Sache.
Fehlender Kaffee?? ;-)
Gruß Klaus

Re: Name einer Benutzergruppe auslesen (z.B.: Win NT)
05.03.2003 09:18:31
Thorsten

Sauber,
vielen Dank für die vielen Ideen und Lösungen.
Also ran an die Arbeit.
Gruß Thorsten

Anzeige
Re: Danke
05.03.2003 09:25:38
Thorsten

Sauber,
vielen Dank für die vielen Ideen und Lösungen.
Also ran an die Arbeit.
Gruß Thorsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige