Benutzer Gruppe/OU auslesen in AD

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
eddy
Rookie
Rookie
Beiträge: 9
Registriert: Mo, 27. Jul 2009 12:23

Benutzer Gruppe/OU auslesen in AD

Beitrag von eddy »

Hallo,

kann mir jemand sagen, wie ich eine Benutzergruppe in der AD auslesen kann?
Mit GETenv("USERNAME") bekomme ich den aktuellen Namen angezeigt, ich benötige aber auch die Gruppe/OU des Benutzers.
Gibt es da einen ähnlichen Befehl?

Gruß eddy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Benutzer Gruppe/OU auslesen in AD

Beitrag von brandelh »

Hi,

starte eine CMD Box und rufe den Befehl auf:

Code: Alles auswählen

SET > Liste.txt
In Liste.Txt findest du alle Angaben, die so hinterlegt sind.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Benutzer Gruppe/OU auslesen in AD

Beitrag von AUGE_OHR »

eddy hat geschrieben:kann mir jemand sagen, wie ich eine Benutzergruppe in der AD auslesen kann?
WMI ?
siehe dir mal http://www.activexperts.com/activmonito ... i/samples/ an ob du das was findest.
wenn ja kann ich dir den Xbase++ Source "generieren".
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Benutzer Gruppe/OU auslesen in AD

Beitrag von AUGE_OHR »

oder das hier :

> In order to solve an intermittent application problem, I need to
> determine the name of the Windows Active Directory domain which the
> user has logged into.
>
> Does anyone have a simple way to do this?
>

Try W32_GetUserName() with nFormat of 1,2, or 10

#include "dll.ch"

function W32_GetUserName(nFormat)
local cUserName:=Space(256),;
nLength,;
nError

default nFormat to 2

nLength := len(cUserName)

nError := DllCall( "Secur32.Dll", DLL_STDCALL, "GetUserNameExA", nFormat,
@cUserName, @nLength )

cUserName := iif(nError == 0,"",strtran(left(cUserName,nLength),chr(0),''))

return cUserName

function W32_GetComputerName(nFormat)
local cComputerName:=Space(256),;
nLength,;
nError

default nFormat to 1

nLength := len(cComputerName)

nError := DllCall( "Kernel32.Dll", DLL_STDCALL, "GetComputerNameExA", nFormat,
@cComputerName, @nLength )

cComputerName := iif(nError == 0,"",strtran(left(cComputerName,nLength),chr(0),''))

return cComputerName
Regards,

Rodd Graham, Consultant
Graham Automation Systems, LLC
gruss by OHR
Jimmy
eddy
Rookie
Rookie
Beiträge: 9
Registriert: Mo, 27. Jul 2009 12:23

Re: Benutzer Gruppe/OU auslesen in AD

Beitrag von eddy »

Danke für die Funktion, leider klappt die bei mir nicht.
Beim Kompilieren bekomme ich einen syntax error xbt0200 in zeile "default nFormat to 2" .

Entferne ich die Zeile steht in der XPPError.log "Datei kann nicht geöffnet werden" ich nehme an, es handelt sich dabei um die secur32.dll.
An der Zugriffsberechtigung der Datei kann es denke ich nicht liegen, da ich sie auf Vollzugriff gesetzt habe.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Benutzer Gruppe/OU auslesen in AD

Beitrag von Martin Altmann »

Hallo Eddy,
die Probleme mit default... habe ich auch ab und an - hängt wohl davon ab, an welcher Stelle (vor oder nach den locals) das steht...
Probiere doch mal ersatzweise diese Konstrukt:

Code: Alles auswählen

if valtype( nFormat ) == "U"
  nFormat := 2
endif
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Benutzer Gruppe/OU auslesen in AD

Beitrag von brandelh »

Hi,

damit DEFAULT funktioniert, muss man #include common.ch einbinden.
UND ALLES muss nach LOCAL, STATIC, MEMVAR ... stehen.

DEFAULT X TO 2

wird ja vom Präprozessor übersetzt zu:

Code: Alles auswählen

if x==NIL
   x:=2
endif
(aus dem Kopf ...)
Gruß
Hubert
eddy
Rookie
Rookie
Beiträge: 9
Registriert: Mo, 27. Jul 2009 12:23

Re: Benutzer Gruppe/OU auslesen in AD

Beitrag von eddy »

brandelh hat geschrieben:Hi,

damit DEFAULT funktioniert, muss man #include common.ch einbinden.
UND ALLES muss nach LOCAL, STATIC, MEMVAR ... stehen.

DEFAULT X TO 2

wird ja vom Präprozessor übersetzt zu:

Code: Alles auswählen

if x==NIL
   x:=2
endif
(aus dem Kopf ...)
O.K klappt jetzt, es wird der Benutzername und die Domäne ausgelesen, leider benötige ich noch die Gruppe/OU in der sich der Benutzer befindet.

Gruß eddy
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Benutzer Gruppe/OU auslesen in AD

Beitrag von Wolfgang Ciriack »

Du könntest das mit

Code: Alles auswählen

NET USER <username> /DOMAIN
in eine Datei abfragen und dann nach "Globale Gruppenmitgliedschaften" parsen.
Aber vielleicht hat Jimmi oder jemand anders auch noch eine Umsetzung des NET USER Befehls.
Viele Grüße
Wolfgang
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Benutzer Gruppe/OU auslesen in AD

Beitrag von Tom »

Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Benutzer Gruppe/OU auslesen in AD

Beitrag von AUGE_OHR »

eddy hat geschrieben:An der Zugriffsberechtigung der Datei kann es denke ich nicht liegen, da ich sie auf Vollzugriff gesetzt habe.
... W98se ?

hast du dir mal den Link http://www.activexperts.com/activmonito ... i/samples/ angesehen.
Es ist bestimmt dabei, aber ich habe keine Lust danach zu suchen oder 100 Demo zu "generieren"

hier z.b. Win32_ComputerSystem() auf den der Link von Tom zu gehen scheint.
Win32_ComputerSystem.zip
WMI Win32_ComputerSystem()
(7.16 KiB) 187-mal heruntergeladen
aber ich glaube es ist eher sowas
Win32_Account.zip
WMI Win32_Account()
(4.64 KiB) 213-mal heruntergeladen
p.s. beide Demos benötigen SL1, also v1.9.355 UND man muss den Dienst WMI aktive haben !!!
gruss by OHR
Jimmy
Antworten