Svp expliqué moi ce code pr que je puisse le recoder en C#

Signaler
Messages postés
11
Date d'inscription
dimanche 1 février 2009
Statut
Membre
Dernière intervention
11 mai 2009
-
Messages postés
17
Date d'inscription
mardi 19 août 2008
Statut
Membre
Dernière intervention
29 juin 2013
-
Bonsoir,
voila je travaille sur une application en C# qui gère
l'active directory  et les GPO , et mon probleme c que jai pas put
coder des script qui gere les gpo en C# ou en VB.net tous ce que jai
trouvé c en VBscript que je ne comprend rien du tou , je vous demande
bien de m'aidé sur sa ou d'essay de me faire comprendre ce script que
jai ramené de  msdn qui fais la relation entre une OU  et les gpo ,
tout aide mes indesponssable et favorable merci voici le script
.  et si il ya une methode pr importe du vbscript en C# jaimerai bien la connetre
merci
This code links a GPO to an OU in the specified domain

' ------ SCRIPT CONFIGURATION -----

strDomainDN = "<tt><DomainDN>
</tt>
" ' e.g. dc=adatum,dc=com

strGPO = "<tt><GPOName>
</tt>
" ' e.g. WorkstationsGPO

strOUDN = "<tt><OrgUnitDN>
</tt>
" ' e.g. ou=Workstations,dc=adatum,dc=com

' ------ END CONFIGURATION --------

strBaseDN = "<LDAP://cn=policies,cn=system,dc=" & strDomainDN & ">;"

strFilter = "(&(objectcategory=grouppolicycontainer)" & _

"(objectclass=grouppolicycontainer)" & _

"(displayname=" & strGPO & "));"

strAttrs = "ADsPath;"

strScope = "OneLevel"

set objConn = CreateObject("ADODB.Connection")

objConn.Provider = "ADsDSOObject"

objConn.Open "Active Directory Provider"

set objRS = objConn.Execute(strBaseDN & strFilter & strAttrs & strScope)

if objRS.EOF <> TRUE then

objRS.MoveFirst

end if

if objRS.RecordCount = 1 then

strGPOADsPath = objRS.Fields(0).Value

WScript.Echo "GPO Found: " & strGPOADsPath

elseif objRS.RecordCount = 0 then

WScript.Echo "Did not founding matching GPO for: " & strGPO

Wscript.Quit

elseif objRS.RecordCount > 1 then

WScript.Echo "More than 1 GPO found matching: " & strGPO

Wscript.Quit

end if

set objOU = GetObject("LDAP://" & strOUDN)

on error resume next

strGPLink = objOU.Get("gpLink")

if Err.Number then

if Err.Number <> -2147463155 then

WScript.Echo "Fatal error while retrieving gpLink attribute: " & _

Err.Description

Wscript.Quit

end if

end if

on error goto 0

objOU.Put "gpLink", strGPLink & "[" & strGPOADsPath & ";0]"

objOU.SetInfo

WScript.Echo "GPO successfully linked"

' The following code segment will remove any GPOs that

' are linked to an OU

Const ADS_PROPERTY_CLEAR = 1

Set objContainer = GetObject _

("LDAP://<<tt>OU DN
</tt>
>") ' i.e. "ou=Finance,dc=adatum,dc=com"

objContainer.PutEx ADS_PROPERTY_CLEAR, "gPLink", 0

objContainer.PutEx ADS_PROPERTY_CLEAR, "gPOptions", 0

objContainer.SetInfo

1 réponse

Messages postés
17
Date d'inscription
mardi 19 août 2008
Statut
Membre
Dernière intervention
29 juin 2013

Je ne connais pas le GPO, mais je cod eun peu en vbscript.

' ------ SCRIPT CONFIGURATION -----
'Variable contenant le nom de domaine, avec un exemple pour le domaine adatum.com
strDomainDN = "<DomainDN> '   dc=adatum,dc=com
'si tu as mon.domaine.com tu auras " dc=nom , dc=domaine, dc=com"


strGPO      = "<GPOName>
 '    WorkstationsGPO
'j'ignore ce qu'est le GPO mais cette variable contient le nom

strOUDN     = "<OrgUnitDN>
 '  ou=Workstations,dc=adatum,dc=com
'la variable contient le nom d'une unité organisationnelle d'active directory
' et le nom de domaine



Dans le code qui suit tu prépares ta requête active directory strBaseDN
Et tu prépares le filtre des résultats strFilter.
strBaseDN = "<LDAP://cn=policies,cn=system,dc=" & strDomainDN & ">;"

strFilter = "(&(objectcategory=grouppolicycontainer)" & _

              "(objectclass=grouppolicycontainer)" & _

              "(displayname=" & strGPO & "));"



Connexion à active directory

set objConn = CreateObject("ADODB.Connection")

objConn.Provider = "ADsDSOObject"

objConn.Open "Active Directory Provider"



J'ai pas le temps d eposter la suite. Mais en gros tu as commencé par executer la requête et en fonction du nombre de résultat, il effecture un certain nombre d'actions, que je n'ai pas lues.