Script en WSH | Active Directory et GPO

Script en WSH | Active Directory et GPO - VB/VBA/VBS - Programmation

Marsh Posté le 22-10-2004 à 14:46:17    

Javais initialement posé mes questions sur le forum administration. Mais je pense que les questions que j'ai mnt sont plus en rapport avec la programmation
 
Pour résumer, je souhaite faire un script qui créé une UO, un groupe, des utilisateurs, importe une GPO, et crée le lien sur l'UO désiré
 
J'ai presque terminé, il ne me reste plus qu'a faire le lien entre la GPO et l'UO.
 
Pour cela j'ai ce script, mais il n'est pas encore au point :
 

Code :
  1. Set DLL=CreateObject("iadstools.dcfunctions" )
  2. Set oRoot = GetObject("LDAP://rootDSE" )
  3. Set SDOU = GetObject("LDAP://" & oRoot.Get("defaultNamingContext" ))
  4. nom_serveur=""
  5. nom_domaine=""
  6. 'Result=DLL.GetGPOs("&nom_domaine&","&nom_serveur&" )
  7. Result=DLL.GetGPOs("DOMAINE.FR","SRV2000" )
  8. if Result > 0 then
  9. AskGUID="GPO TSE"
  10. if not askGUID="GPO TSE" then
  11. else
  12.  for i=1 to result
  13.   if lcase(DLL.gponame(i))=lcase(askGUID) then
  14.    currentGPLIST=SDOU.get("gpLink" )
  15.    currentGPLIST=currentGPLIST & "[LDAP://CN=" & DLL.gpoguid(i) &
  16. ",CN=Policies,CN=System," & DLL.getdefaultnamingcontext("SRV2000" ) & ";0]"
  17. msgBox currentGPLIST
  18.    SDOU.put "gpLink",currentGPLIST
  19.    SDOU.SetInfo
  20.  Exit For
  21.   end if
  22.  next
  23. end if
  24. end if


 
Mon probleme : la GPO est bien linké, mais sur le domaine et non sur l'UO. Est ce que quelqu'un sait comment positionner le lien sur l'UO TEST TSE
 
Autre probleme, j'aimerai recuperer automatiquement le nom de domaine avec l'extension (variable %USERDNSDOMAIN%) et le nom du serveur de facon a ne pas avoir a le taper (pour le moment c'est en dur dans le code)
 
J'espere que quelqu'un aura une idée :wahoo:

Reply

Marsh Posté le 22-10-2004 à 14:46:17   

Reply

Marsh Posté le 29-10-2004 à 08:37:29    

pour récupérer les variables d'environement, essaye ca:

Code :
  1. Server     = Ucase(WshShell.ExpandEnvironmentStrings ("%LogonServer%" ))
  2.    UserName   = Ucase(WshShell.ExpandEnvironmentStrings ("%UserName%"   ))
  3.    Domain     = Ucase(WshShell.ExpandEnvironmentStrings ("%UserDomain%" ))


La fonction Ucase met en majuscule. Ca a pas l'aire comme ca, mais si tu fais un IF, vb est CaseSensitive, donc autant tout mettre en majuscule (ou en minuscule, a choix).
 
Sinon, si tu fais simplement  

Code :
  1. variable = %username%


ca fonctionne aussi, mais c'est moins "propre"...


Message édité par helvetik le 29-10-2004 à 08:38:15
Reply

Sujets relatifs:

Leave a Replay

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