locked
probleme avec un script RRS feed

  • Question

  • bonjour,
    voila je trvaille sur active directory depuis un mois deja et il se trouve que j' ai un probleme quand je teste mon script.
    SVP pourrez vous m'aider pour que je puisse savoir où se trouve mon erreur et ce que je dois mettre ?

    voila le script:

    Imports System.directoryservices
    Imports System.directoryservices.activedirectory

    et objDomain = GetObject("ldap://dc=Hte,dc=intra")

    Set objOU = GetObject("ldap://ou=User,ou=Useroffice, ou=User dc=hte,dc=intra")

    DirectoryEntry ldap = new DirectoryEntry " ldap://nom,login,paasword" ;

    DirectorySearcher searcher = new DirectorySearcher(ldap);

    searcher.Filter = "(SAMAccountName=SG)";

    SearchResult result = searcher.FindOne();

    DirectoryEntry DirEntry = result.GetDirectoryEntry();

    DirEntry.Properties["TelephoneNumber"].Value = "110";

    DirEntry.CommitChanges();

    le script me renvoie une erreur à cette ligne:

    DirectoryEntry ldap = new DirectoryEntry " ldap://nom,login,paasword" ;

    merci

    • Déplacé swapnilpBanned jeudi 4 février 2010 01:26 Forum Consolidation (Origine :Windows Server 2003 – Services d’Annuaire)
    lundi 30 juillet 2007 06:54

Toutes les réponses

  • Bonsoir,

     

    peux-tu indiquer le but exact souhaité et le langage utilisé? (cela ressemble à du VB.Net !)

     

    J'ai de nombreuses solutions en VbScript (et VB6), mais dans lesquelles aucun login ou password ne sont nécessaires.

    A bientôt,

    lundi 30 juillet 2007 21:09
  • salut,
    en fait je me suis rendu compte du problème et j' ai melenger les code en c# et vb. voila mon nouveau programme.ce qui se pose en fait c'est que je dois surement ajouter quelques chose pour que mon script envoie des modifications mais je ne sais pas quoi.


    using System;
    using System.DirectoryServices;
    using System.Security;

    namespace Active
    {
        class Class1
        {

            public static void Main(string[] args ) {
               
    DirectoryEntry Ldap = new DirectoryEntry("LDAP://ADS1");

    DirectorySearcher searcher = new DirectorySearcher(Ldap);

    searcher.Filter = "(SAMAccountName=SG)";

    SearchResult result = searcher.FindOne();

    DirectoryEntry DirEntry = result.GetDirectoryEntry();

    DirEntry.Properties["TelephoneNumber"].Value = "110";

    DirEntry.CommitChanges();

            }
        }
    }

     le script fonctionne mais il n' envoie pas les changement sur active directory.

    merci de votre aide.
    mardi 31 juillet 2007 11:11
  • Bonsoir,

     

    j'imagine que ADS1 est bien un contrôleur de domaine et que tu es connecté sous un compte administrateur !

     

    Voici une fonction que j'utilise pour modifier un compte en VbScript :

     


    Function UpdateAccount(DnName)
    Dim oUser

    wscript.echo dnname
    set oUser=GetObject("LDAP://"+DnName)


    samaccountname=ouser.samaccountname
    sn=oUser.sn
    givenname=oUser.givenname
    DisplayName=Trim(oUser.DisplayName)


    If len(sn)=0 OR len(Givenname)=0 Then
      If Len(DisplayName)=0 Then
        wscript.echo samaccountname&" | No Sn,Givenname or DisplayName"
        v=v+1
      Else
        x=Instr(DisplayName, " ")
        IF x>0 Then
          GivenName=left(DisplayName,x-1)
          sn=Mid(Displayname,x+1)
          NewDisplayName=Ucase(sn)+" "+givenname
          wscript.echo "CORRRECTED| "&samaccountname&" | "&sn&" | "&givenname&" | "&DisplayName&" | "&NewDisplayName
          w=w+1
        Else
          wscript.echo samaccountname&" | No Sn,Givenname or DisplayName"
          v=v+1
        End IF    
      End IF
    Else
      NewDisplayName=Ucase(sn)+" "+givenname
      wscript.echo samaccountname&" | "&sn&" | "&givenname&" | "&DisplayName&" | "&NewDisplayName
      oUser.put "DisplayName", NewDisplayName
      oUser.setinfo
    End if

    End Function

    mardi 31 juillet 2007 22:51
  • salut,
    j'ai en fait trouvé mon erreur. j'avais melanger les codes en vb et en c#,. mais maintenant j' ai une probleme qui se pose avec les permissions. je travaille bien sur un controlleur de domaine et je suis administrateur sur cette machine mais je n'arrive pas à acceder à active directory.
    voila mon code:


    using System;
    using System.Data;
    using System.DirectoryServices;
    using System.DirectoryServices.ActiveDirectory;
    using System.Diagnostics;
    using System.Security;
    using System.Security.Permissions;
    using System.Security.Policy;
    using System.Reflection;
    using System.Runtime.Serialization;

    namespace Active
    {
        class Class1
        {
                        public static void Main(string[] args)
                        {
                            try
                            {

                                // string Path = Serveur + "CN=domaine.be,CN=All Address Lists" + ExchADC + DCDomaine;
                                DirectoryEntry Ldap = new DirectoryEntry("ldap://hte.intra", "don", "mamanetpapa");


                                ActiveDirectorySecurity ads = (ActiveDirectorySecurity)Ldap.ObjectSecurity;
                                System.Security.Principal.NTAccount group = new System.Security.Principal.NTAccount("GroupeTest");
                                ActiveDirectoryAccessRule ar = new ActiveDirectoryAccessRule(group, ActiveDirectoryRights.DeleteTree | ActiveDirectoryRights.ListObject, System.Security.AccessControl.AccessControlType.Allow);
                                ads.AddAccessRule(ar);

                                DirectoryEntry ldap = new DirectoryEntry("ldap://hte.intra", "don", "mamanetpapa");

                                DirectorySearcher searcher = new DirectorySearcher(ldap);

                                searcher.Filter = "(SAMAccountName=SG)";

                                SearchResult result = searcher.FindOne();

                                DirectoryEntry DirEntry = result.GetDirectoryEntry();

                                DirEntry.Properties["TelephoneNumber"].Value = "110";

                                DirEntry.CommitChanges();

                            }
                            catch (Exception e)
                            {
                                Console.WriteLine(" Exception : " + e.Message);
                            }
                        }
                    }

                }
            }

        

    et voila l' erreur que ca me renvoie:

    Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

    merci pour votre aide.

    dorine

    jeudi 2 août 2007 06:11