Active Directory - ADSI - Terminal Serveur

Active Directory - ADSI - Terminal Serveur - Delphi/Pascal - Programmation

Marsh Posté le 13-06-2005 à 10:05:01    

Bonjour,
 
je dois réaliser sous delphi une interface de gestion, creation de compte utilisateur sur l'Active Directory de Windows serveur 2003.
J'ai trouvé des infos pour récupérer et modifier les comptes utilisateurs (login, mail, description...) en utilisant l'interface ADSI de microsoft  
Mais pour les infos concernant le terminal serveur (citrix), les sessions et le remote control (se sont des infos qui apparaisent ds les onglets d'administration de l'AD) je ne trouve pas comment les récupérer.
Ces infos n'apparaissenet nulle part, je ne sais pas comment elles sont stocké, ni sous quel champ !
 
Je peux seulement les modifier avec ADModify mais pas les récupérer (un prog en ligne de commande qui se limite vraiment a son nom  :ouch:)
 
Voila, si quelqun a une petite idée  
 
Merci d'avance

Reply

Marsh Posté le 13-06-2005 à 10:05:01   

Reply

Marsh Posté le 14-06-2005 à 13:17:28    

up

Reply

Marsh Posté le 15-06-2005 à 13:37:28    

Bon j'ai peut être trouvé une solution en utilisant le programme en ligne de commande : tscmd.exe (trouvable sur www.systemtools.com)
Celui ci permet de modifier et de récupérer les valeurs du Terminal Server
 
Avec ShellExecute j'arrive a lancer le prog, mais pour récupérer les infos je sais pas comment faire sous delphi ??!
 

Reply

Marsh Posté le 09-08-2005 à 15:58:31    

Voici un debut de reponse sous vb:

Code :
  1. Set objUser = GetObject("LDAP://cn=youngrob,ou=r&d,dc=fabrikam,dc=com" )
  2. WScript.Echo objUser.Name & " Terminal Services Profile Settings"
  3. WScript.Echo "--------------------------------------------------"
  4. WScript.Echo "Allow Logon: " & objUser.AllowLogon
  5. WScript.Echo "Terminal Services Home Directory: " & _
  6.     objUser.TerminalServicesHomeDirectory
  7. WScript.Echo "Terminal Services Home Drive: " & _
  8.     objUser.TerminalServicesHomeDrive
  9. WScript.Echo "Terminal Services Profile Path: " & _
  10.     objUser.TerminalServicesProfilePath
  11. WScript.Echo "Enable Remote Control: " & objUser.EnableRemoteControl
  12. WScript.Echo "Broken Connection Action: " & objUser.BrokenConnectionAction
  13. WScript.Echo "Max Connection Time: " & objUser.MaxConnectionTime
  14. WScript.Echo "Max Disconnection Time: " & objUser.MaxDisconnectionTime
  15. WScript.Echo "Max Idle Time: " & objUser.MaxIdleTime
  16. WScript.Echo "Reconnection Action: " & objUser.ReconnectionAction
  17. WScript.Echo "Connect Client Drives At Logon: " & _
  18.     objUser.ConnectClientDrivesAtLogon
  19. WScript.Echo "Connect Client Printers At Logon: " & _
  20.     objUser.ConnectClientPrintersAtLogon
  21. WScript.Echo "Default To Main Printer: " & _
  22.     objUser.DefaultToMainPrinter
  23. WScript.Echo "Terminal Services Initial Program: " & _
  24.     objUser.TerminalServicesInitialProgram
  25. WScript.Echo "Terminal Services Work Directory: " & _
  26.     objUser.TerminalServicesWorkDirectory


 
Cela fonctionne a patir de W2K3, pas avant. Je pense que la traduction sous Delphi ne doit pas etre tres dure.

Code :
  1. uses
  2.   Windows, Messages, (...) ActiveDs_TLB,  ActiveX,
  3.   DB, ADODB, (...) SimpleDS, ActiveDs, ADGUIDConversions, ADVAPI32;
  4. (...)
  5. procedure TFormMain.ListBox1Click(Sender: TObject);
  6. var
  7.   obj : IAds;
  8.   result : string ;
  9.   buffer:array[0..255]of widechar;
  10. begin
  11.   cleanbox(Self );
  12.   result  :=  ListBox1.Items[ListBox1.Itemindex]  ;
  13.   adsuser := stringtowidechar(result, buffer, 255);
  14.   ADsOpenObject( adsuser, AdsadmUser, Adsadmpwd, ADS_SECURE_AUTHENTICATION ,IAds, Obj);
  15.   try
  16.     LabNom.Text := obj.Get('SN');
  17.   except
  18.   end;
  19. (...)


Bonne chance.


---------------
http://www.chavers.org
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed