kor Posted May 20, 2009 Share Posted May 20, 2009 I'm trying #include <adfunctions.au3> Global $ObjectArray, $ou="Computers", $filter, $searchscope, $datatoretrieve, $sortby _ADGetObjectsInOU($ObjectArray, $ou, $filter, $searchscope, $datatoretrieve, $sortby) _ArrayDisplay($ObjectArray) But I get a COM error. I'm still a little new on how to call functions from Includes and also provide all the needed VAR's. Basically, I need to query a certain OU for the list of computer objects that are already there. Then I will need to delete all the computer objects. Finally, re-add all the objects that were already there, and set the permission on who can join the computer to the domain to a specific group. (for pre-staging) Link to comment Share on other sites More sharing options...
kor Posted May 20, 2009 Author Share Posted May 20, 2009 I have been able to get the first part of the script. This will query an OU and return a list of computers in that OU. #include <adfunctions.au3> #include <Array.au3> Global $Computers $ou = "OU=Workstations,OU=NOC,DC=ad,DC=local,DC=com"; Root of your AD, e.g. DC=microsoft,DC=com _ADGetObjectsInOU($Computers, $ou, "(&(objectCategory=computer))", 2) _ArraySort($Computers, 0, 1) _ArrayDisplay($Computers) Link to comment Share on other sites More sharing options...
kor Posted May 20, 2009 Author Share Posted May 20, 2009 I'm having some trouble with my second part of deleteing all the computers in an OU. Dim $DelComputers _FileReadToArray("C:\Users\test\Desktop\image\output.txt", $DelComputers) _ArrayDelete($DelComputers, 0);removes the first row of array to get rid of count Dim $Average, $Array2Size = UBound($DelComputers) For $i = 0 To $Array2Size _ADDeleteObject($ou, $DelComputers[$i], "computer") Next This code works, but it's only deleting the first computer in the array instead of all of them. Can someone help me with my loop? Link to comment Share on other sites More sharing options...
kor Posted May 20, 2009 Author Share Posted May 20, 2009 Nevermind, got it. Dim $Array2Size = UBound($DelComputers)-1 For $i = 0 To $Array2Size _ADDeleteObject($ou, $DelComputers[$i], "computer") Next Link to comment Share on other sites More sharing options...
kor Posted May 20, 2009 Author Share Posted May 20, 2009 This works nicely. expandcollapse popup#include <adfunctions.au3> #include <Array.au3> #include <File.au3> ;--------------- ; Read OU ;--------------- Global $Computers $ou = "OU=test,DC=ad,DC=local,DC=com"; Root of your AD, e.g. DC=microsoft,DC=com _ADGetObjectsInOU($Computers, $ou, "(&(objectCategory=computer))", 2) Dim $Array1Size = UBound($Computers)-1 ;~ _ArrayDisplay($Sizes) For $i = 0 To $Array1Size $Computers[$i] = StringReplace($Computers[$i], '$', '');removes money sign from end of each computer $Computers[$i] = StringLower($Computers[$i]);makes all computers lowercase Next If $Computers = "" Then MsgBox(64, "No objects", "There are no objects in this OU") Exit EndIf _ArraySort($Computers, 0, 1);sort alphabetically a-z _ArrayDelete($Computers, 0);removes the first row of array to get rid of count ;_ArrayDisplay($Computers) _FileWriteFromArray("C:\Users\test\Desktop\image\output.txt", $Computers);output OU to text file ;-------------------------- ; Delete Computers from OU ;-------------------------- Dim $DelComputers _FileReadToArray("C:\Users\test\Desktop\image\output.txt", $DelComputers) _ArrayDelete($DelComputers, 0);removes the first row of array to get rid of count Dim $Array2Size = UBound($DelComputers)-1 For $i = 0 To $Array2Size _ADDeleteObject($ou, $DelComputers[$i], "computer") Next ;-------------------------- ; Create Computers in OU ;-------------------------- Dim $CreateComputers _FileReadToArray("C:\Users\test\Desktop\image\output.txt", $CreateComputers) _ArrayDelete($CreateComputers, 0);removes the first row of array to get rid of count $computerOU = $ou Dim $Array3Size = UBound($CreateComputers)-1 For $i = 0 To $Array3Size _ADCreateComputer($CreateComputers[$i], $computerOU, "Desktop Support") Next Link to comment Share on other sites More sharing options...
rikho Posted August 19, 2009 Share Posted August 19, 2009 Hi all, is that possible to get lastlogon attribute of each computer in same time with this function ? Bye Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now