Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

filtrer des ordinateurs par une partie de leur nom

2 réponses
Avatar
Lyes
Bonjour,

je souhaite déplacer des ordinateurs en fonction de leurs noms dans des
OU spécifiques à l'aide d'un script vbs.

j'ai trouvé ( script ci dessous) comment on déplace des ordinateurs d'une
OU vers une autre mais j'ignore comment le faire en fonction de leur nom
d'ordinateur.
Qqun peut il m'aider à filtrer les ordinateurs en fonction du début de leur
nom pour les déplacer dans l'OU qui convient.
(ex computer name commencant par wk8 irai dans l'OU WK800)

On Error Resume Next

Const ADS_SCOPE_SUBTREE = 6

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 Name FROM 'LDAP://OU=AllCptrs,DC=corporate,DC=france' WHERE
objectCategory='computer' "

Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst
Do Until objRecordSet.EOF

for each objs in objRecordSet

Wscript.Echo objRecordSet.Fields("Name").Value
Set objMoveComputer = objs.MoveHere _
("LDAP://CN= & objs.name,OU=AllCptrs,DC=corporate,DC=france", "CN=&
Objs.name")

objRecordSet.MoveNext
Loop

2 réponses

Avatar
Gilles LAURENT [MVP]
"Lyes" wrote:

Bonjour,



Bonjour,

je souhaite déplacer des ordinateurs en fonction de leurs noms dans des
OU spécifiques à l'aide d'un script vbs.



--- MoveComputer.vbs ---
' OU de destination des ordinateur WK8*
Set oDestOU=GetObject("LDAP://OU=WK800,DC=Corporate,DC=France")

Set oCon = CreateObject ("ADODB.Connection")
Set oCmd = CreateObject ("ADODB.Command")
oCon.Open "Provider­sDSOObject"
oCmd.ActiveConnection = oCon
oCmd.CommandText = _
"<LDAP://OU=AllCptrs,DC=Corporate,DC=France>;" & _
"(&(objectCategory=Computer)(cn=WK8*));" & _
"name,distinguishedname;" & _
"subtree"

Set oRs = oCmd.Execute
While Not oRs.EOF
WScript.Echo oRs.Fields(0)
Set oComputer=GetObject("LDAP://" & oRs.Fields(1))
oDestOU.MoveHere oComputer.AdsPath, VBNullString
oRs.MoveNext
Wend
--- MoveComputer.vbs ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Lyes
Bonjour Gilles

Merci beaucoup de votre script j'avais vu que vous aviez répondu à mon post.
En effet afin de mieux définir le sujet j'avais republier mon post avec
un titre différent et je me suis un peu ambrouillé les peinceaux.

Je vais prendre connaissance du script et vous ferai un retour du
résultat rapidement.
Je ne peux malheureursement pas le tester car il y a des stratégies de
restriction logiciel qui m'empêchent d'installer les outils de
virtualisation (msvirtualpc/server,vmware,virtualbox) gratuits sur les postes
et étant stagiaire je ne peux pas me permettre de les désactiver pour faire
mes tests.

Merci encore à vous

Lyes

"Gilles LAURENT [MVP]" wrote:

"Lyes" wrote:

> Bonjour,

Bonjour,

> je souhaite déplacer des ordinateurs en fonction de leurs noms dans des
> OU spécifiques à l'aide d'un script vbs.

--- MoveComputer.vbs ---
' OU de destination des ordinateur WK8*
Set oDestOU=GetObject("LDAP://OU=WK800,DC=Corporate,DC=France")

Set oCon = CreateObject ("ADODB.Connection")
Set oCmd = CreateObject ("ADODB.Command")
oCon.Open "Provider­sDSOObject"
oCmd.ActiveConnection = oCon
oCmd.CommandText = _
"<LDAP://OU=AllCptrs,DC=Corporate,DC=France>;" & _
"(&(objectCategory=Computer)(cn=WK8*));" & _
"name,distinguishedname;" & _
"subtree"

Set oRs = oCmd.Execute
While Not oRs.EOF
WScript.Echo oRs.Fields(0)
Set oComputer=GetObject("LDAP://" & oRs.Fields(1))
oDestOU.MoveHere oComputer.AdsPath, VBNullString
oRs.MoveNext
Wend
--- MoveComputer.vbs ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr