Avatar billede lasserasch Juniormester
13. august 2007 - 16:18 Der er 6 kommentarer og
1 løsning

Hvordan sættesAccountExpires property for en AD bruger?

Hejsa.

I mit program vil jeg gerne oprette en Active Directory bruger. Det går også fint. Jeg kan sætte alle mulige properties for ham.

Jeg får sat password, og enabled kontoen osv.

Mangler bare lige at greje hvordan man får sat AccountExpires propertien!

For det er nemlig ikke bare en datetime value. Det er antal sekunder siden 1. januar 1601 og frem til den dato hvor kontoen skal udløbe.

Dvs. et tal ala : 12834084551

Ved alle andre properties virker denne linje fint :

myDirectoryEntry.Properties["propertynavn"].add(værdi);

Men ved : 
myDirectoryEntry.Properties["accountExpires"].Add(12834084551)

virker det ikke mere. Det er jo forståeligt nok, da man jo ikke ka' have en så høj Integer værdi. Men hvordan sætter man så værdien?

/Lasse
Avatar billede hmortensen Nybegynder
13. august 2007 - 22:27 #1
Prøv sådan her:
usr.InvokeSet("AccountExpirationDate", new object[]
                                                  {
                                                      new DateTime(2007, 12, 24)
                                                  }
);
usr.CommitChanges();
Avatar billede lasserasch Juniormester
14. august 2007 - 14:40 #2
Nope virker heller ikke. Det du foreslår er den måde jeg sætter account enabled og dets password på.

Det er noget med at "AccountExpires" er en Largeinteger værdi. Men forstår ikke hvordan den skal sættes. Kan sagtens trække værdien ud og omdanne den til en datetime værdi. Det findes der masser af eksempler på ude på nettet, men kan ikke finde noget som viser hvordan værdien sættes.

:-(

/Lasse
Avatar billede nielle Nybegynder
14. august 2007 - 21:53 #3
Det er da eller sådan at Microsoft selv angiver at det skal gøres:

http://msdn2.microsoft.com/en-us/library/ms180914(VS.80).aspx
Avatar billede lasserasch Juniormester
15. august 2007 - 03:17 #4
Hmmm.... Ja kan jeg godt se de gør.

Jeg får dog denne fejl når jeg forsøger at gøre det :

System.Runtime.InteropServices.COMException: Medlemmet blev ikke fundet. (Undtagelse fra HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND))



Her er mit kald :

Linje 162:    private void SetExpirationDate ( DirectoryEntry uEntry)
Linje 163:    {
Linje 164:        uEntry.Invoke("AccountExpirationDate", new object[] { new DateTime(2008, 10, 01) });
Linje 165:        uEntry.CommitChanges();
Linje 166:    }


Men det virker fint når jeg f.eks. sætter password bruger en AD bruger. Det gør jeg med dette kald :

  private void ResetAccountPassword ( DirectoryEntry uEntry, string password )
            {
             
                uEntry.Invoke("SetPassword", new object[] { password });
                uEntry.Properties["LockOutTime"].Value = 0;
                uEntry.CommitChanges();
            }

/Lasse
Avatar billede lasserasch Juniormester
15. august 2007 - 04:14 #5
Okay, jeg skal lære at kigge ordenligt efter hvad i skriver. Sorry....

Man skal huske at skrive : usr.InvokeSet
og ikke : usr.Invoke

Det virker efter jeg rettede den lille fejl!

Takker for hjælpen!

Smid et svar!
/Lasse
Avatar billede nielle Nybegynder
20. august 2007 - 18:09 #6
Jeg går ud fra at det er hmortensen som skal smide et svar :^)
Avatar billede hmortensen Nybegynder
20. august 2007 - 18:16 #7
Det var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Capgemini Danmark A/S

Finance Lead (SAP)

Unik System Design A/S

DevOps Engineer

SOS International

Platform Engineer

Operate Technology A/S

PHP-udvikler til Drupal