IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Comment retourner la liste des utilisateurs du domaine reseau?


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Points : 32
    Points
    32
    Par défaut Comment retourner la liste des utilisateurs du domaine reseau?
    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

  2. #2
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    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 ?

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    pour le premier point consulte la FAQ Delphi, pour le second tu parles de sources de données sous ODBC ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Salut,
    pour le premier point consulte la FAQ Delphi, pour le second tu parles de sources de données sous ODBC ?
    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;

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par PDelph7
    - pour le 1 point ' sur quelque rubrique sous le FAQ '
    Faut chercher un peu tout de même http://delphi.developpez.com/faq/?pa...ndMembreGlobal

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    Bon j'ignore si c'est résolu...
    Citation Envoyé par PDelph7 Voir le message
    -comment retourner les utilisateurs du domaine reseau windows 'domain1'
    Personellement, je passe par Active Directory Service (en Delphi 5)

    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;
    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
     
    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 remplie un RichEdit avec la liste des usagers.
    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

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/04/2009, 17h04
  2. Récupérer liste des utilisateur domaine d'une machine
    Par Silverbob dans le forum VBScript
    Réponses: 14
    Dernier message: 25/02/2009, 14h13
  3. Comment récupérer la liste des utilisateurs, locaux ou NON ?
    Par sinfoni dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 01/04/2008, 11h07
  4. Comment obtenir la liste des paramètres d'une SP ?
    Par Le Gritche dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/03/2003, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo