Adaptation de code vbs pour delphi
bonjour
j'ai un petit soucis pour un code vbs a passer en delphi
je pense que ca vient de la requête mais je ne vois pas comment passer mes quotes a moins que ca ne soit pas faisable:
code vbs qui permet de déplacer un computer dans une OU
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT ADsPath FROM 'LDAP://dc=ecolesks,dc=local' WHERE objectCategory='computer' " & _
"AND name='rr'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
strADsPath = objRecordSet.Fields("ADsPath").Value
Wscript.Echo objRecordSet.Fields("ADsPath").Value
Set objOU = GetObject("LDAP://ou=ordinateurs,ou=ecole primaire,DC=ecolesks,DC=local")
intReturn = objOU.MoveHere(strADsPath, vbNullString)
objRecordSet.MoveNext
Loop |
ce code marche!!!
le code sous delphi
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
procedure TForm1.Button1Click(Sender: TObject);
var
c:tscriptcontrol;
begin
c := TScriptControl.Create(Self);
try
c.Language := 'VBScript';
c.AddCode('Const ADS_SCOPE_SUBTREE = 2') ;
c.AddCode('Set objConnection = CreateObject("ADODB.Connection") ') ;
c.AddCode('Set objCommand = CreateObject("ADODB.Command") ') ;
c.AddCode('objConnection.Provider = "ADsDSOObject" ') ;
c.AddCode('objConnection.Open "Active Directory Provider"') ;
c.AddCode('Set objCommand.ActiveConnection = objConnection ') ;
c.AddCode('objCommand.Properties("Page Size") = 1000 ') ;
c.AddCode(' objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE ') ;
c.AddCode('objCommand.CommandText = "SELECT ADsPath FROM '+'LDAP://dc=ecolesks,dc=local'+' WHERE objectCategory='+'computer' +' AND name='+'rr'+'" ');
c.AddCode(' Set objRecordSet = objCommand.Execute ') ;
c.AddCode(' Wscript.Echo objRecordSet.Fields("ADsPath").Value ') ;
c.AddCode('objRecordSet.MoveFirst ') ;
c.AddCode('Do Until objRecordSet.EOF ') ;
c.AddCode(' strADsPath = objRecordSet.Fields("ADsPath").Value ') ;
c.AddCode(' Wscript.Echo objRecordSet.Fields("ADsPath").Value ') ;
c.AddCode(' Set objOU = GetObject("LDAP://ou=ordinateurs,ou=ecole primaire,DC=ecolesks,DC=local") ') ;
c.AddCode(' intReturn = objOU.MoveHere(strADsPath, vbNullString) ') ;
c.AddCode('objRecordSet.MoveNext ') ;
c.AddCode(' Loop ') ;
finally;
c.Free;
end;
end;
end. |
ca palnte ici:
Code:
1 2
|
c.AddCode('objCommand.CommandText = "SELECT ADsPath FROM '+'LDAP://dc=ecolesks,dc=local'+' WHERE objectCategory='+'computer' +' "AND name='+'rr'+'" '); |
voila si vous avez vu mon erreur???
merci
a+
bon week end