Bonjour
-comment retourner les utilisateurs du domaine reseau windows 'domain1'
-comment retourner les informations qui contient un alias sqlserver (le nom de la base de donnée et le nom du serveur)
en delphi 7
merci
Bonjour
-comment retourner les utilisateurs du domaine reseau windows 'domain1'
-comment retourner les informations qui contient un alias sqlserver (le nom de la base de donnée et le nom du serveur)
en delphi 7
merci
Pour ta question 1 je pense que tu peux y avoir accès par WMI (quoique)
Pour ta question 2 je n'ai pas compris ! Tu peux être plus précis ?
Salut,
pour le premier point consulte la FAQ Delphi, pour le second tu parles de sources de données sous ODBC ?
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
oui c'est une source de données ODBC
- pour le 1 point ' sur quelque rubrique sous le FAQ '
- pour le 2 point : 'exp : j'ai un alias "achat" connecter sur la base de données SQLServer2000 "Transite" sous le serveur "Serveur1"
Je veut le programme qui me permet de retourner ces deux parametres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var serv,db:string; . . begin getinfoalias(achat,serv,db) showmessage(serv,db) // doit afficher 'serveur1 Transite' end;
Faut chercher un peu tout de même http://delphi.developpez.com/faq/?pa...ndMembreGlobalEnvoyé par PDelph7
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Bon j'ignore si c'est résolu...
Personellement, je passe par Active Directory Service (en Delphi 5)
exemple d'appele:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 //== Declaration de ADsGetObject dans Active Directory Service (ads) == function ADsGetObject(lpszPathName: PWideChar; const riid: TGUID; out obj): HResult; stdcall; external 'activeds.dll'; //============================================================================== //== Use: ActiveDs_TLB,ActiveX //============================================================================== procedure GetAllSubItem(Container:IADsContainer;Parent:string;NameList:TStringList); var adChildContainer:IADsContainer; enum:IEnumVARIANT; ADsTempObj: OleVariant; Value: LongWord; ADsObj: IADs; TempStr:string; TempStr2:string; begin enum := (Container.Get__NewEnum) as IEnumVariant; while ( Enum.Next(1, ADsTempObj, Value) = s_OK) do begin ADsObj := IUnknown(ADsTempObj) as IADs; WideCharToStrVar(PWideChar(ADsObj.Get_Class_),TempStr); if (TempStr='organizationalUnit') or (TempStr='container') then begin ADsObj.QueryInterface( IID_IADsContainer,adChildContainer); ADsObj := IUnknown(adChildContainer) as IADs; WideCharToStrVar(PWideChar(ADsObj.Get_Name),TempStr); GetAllSubItem(adChildContainer,Parent+TempStr+'\',NameList); end else begin if (TempStr='user') then begin WideCharToStrVar(PWideChar(ADsObj.Get_Name),TempStr); NameList.Add(Parent+TempStr); end; end; end; end; //============================================================================== //== //== Use: ActiveDs_TLB //== DomainName must be full qualified domain name ex: DomainName.net //== NameList is a String List that will receive all users names. //============================================================================== function GetAllDomainUsers(const DomainName:string;NameList:TStringList):integer; var wrkDomainName:string; LDAPNameList:TStringList; TempStr:string; LDAPWideStr:WideString; i:integer; adDomain:IADsContainer; begin wrkDomainName:=DomainName; LDAPNameList:=TStringList.Create; try TempStr:=ExtractFileExt(wrkDomainName); while(TempStr<>'') do begin LDAPNameList.Add(copy(TempStr,2,Length(TempStr))); wrkDomainName:=Copy(wrkDomainName,1,Length(wrkDomainName)-(Length(TempStr))); TempStr:=ExtractFileExt(wrkDomainName); end; finally LDAPNameList.Add(wrkDomainName); LDAPWideStr:='LDAP://dc='; for i:=LDAPNameList.Count-1 downto 0 do begin LDAPWideStr:=LDAPWideStr+LDAPNameList.Strings[i]; if i<>0 then LDAPWideStr:=LDAPWideStr+',dc='; end; LDAPNameList.Free; end; //ici, LDAPWideStr:='LDAP://dc=DomainName,dc=net' ADsGetObject( PWideChar(LDAPWideStr),IADsContainer,adDomain); GetAllSubItem(adDomain,DomainName+'\',NameList); result:=0; end;
Ca remplie un RichEdit avec la liste des usagers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 procedure TForm1.Button1Click(Sender: TObject); var List:TStringList; begin List:= TStringList.Create; try GetAllDomainUsers('MonDomain.Net',List); finally RichEdit1.Lines.Text:=List.Text; List.Free; end; end;
Ca indique aussi dans quelle Organization Unit (OU) les usagers sont.
Ca prend bien sûr les droits requis pour le faire...
Tu dois importer la librarie de type : activeds.tlb dans delphi
(regarde dans le repertoire system32 de windows)
pour être capable de compiler tout ca...
Comment dupliquer un disque...ça vous intéresse?
Tutoriel et code source delphi ici
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager