water Posted August 23, 2012 Author Posted August 23, 2012 Not that I'm aware off. I searched the forum but couldn't find a "multicolumn treeview" or something similar. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Iceman682 Posted August 23, 2012 Posted August 23, 2012 Thanks for looking Water, not doubting you, I check also and got the same result. I'll have to live with it until I find a solution. Just one more question if I may, I search all forums for a domain joining script, one that doesn't use key strokes but similar. Basically what you would normally do manually after a reimage, do you know or anyone within the forum of any? Many thanks again Iceman682
water Posted August 24, 2012 Author Posted August 24, 2012 To join a domain use function _AD_JoinDomain. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Iceman682 Posted August 24, 2012 Posted August 24, 2012 If I use this from the machine I wish to join the domain to, will it work as the machine will not be able to connect to AD?
water Posted August 24, 2012 Author Posted August 24, 2012 The function in the AD UDF will return an error because you need to be connected to the AD. I'm not sure if it's possible at all to join a PC to a domain without connection. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Iceman682 Posted August 25, 2012 Posted August 25, 2012 If I was to insert the domain within System Properties - Computer Name/Domain Changes and press OK it woukld ask for the user account credentails that has permissions to join a machine to the domain, once these are inserted and OK is pressed it would return with the domain join success. Would you agree if this is the case it should be possible?
water Posted August 26, 2012 Author Posted August 26, 2012 Unfortunately I have just "read only" access to my companies AD so I can't test and hence can't answer your question.I searched Google but I'm not sure you can join a computer to a domain without access to the domain (something like a deferred join). I don't think it's possible because joining a computer means to create a connection between the computer and the computer account in AD. is a stripped down join script you could give a try. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
water Posted August 28, 2012 Author Posted August 28, 2012 Experimental Version 1.2.2.0 has been released.For testing purpose only! Needs 3.3.9.2 beta for the new way the UDF handles COM errors!For download please see my signature. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Duppie Posted August 29, 2012 Posted August 29, 2012 I have been playing around with _AD_GetObjectAttribute and found with version AD 1.2.1.0 that if I query an Attribute of an users account in AD e.g scriptPath and if nothing is set the script fails with C:\Program Files (x86)\AutoIt3\Include\AD.au3 (626) : ==> The requested action with this object has failed.: Local $sAD_Result = $oAD_Object.Get($sAD_Attribute) Local $sAD_Result = $oAD_Object.Get($sAD_Attribute)^ ERROR Im using the _AD_GetObjectAttribute.au3 script and changing the Mail to scriptPath. If the attribute is blank shouldnt the script come back with cant be found or the value of 0 thanks in advance
water Posted August 29, 2012 Author Posted August 29, 2012 You use version 1.2.1.0 of the UDF with AutoIt 3.3.9.2 beta or higher? If you want to use the production version of AutoIt you have to use version 1.2.0 of the UDF. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Duppie Posted August 29, 2012 Posted August 29, 2012 Im using Autoit 3.3.9.4 but found my problem..... yes another stupid user problem. I wasnt running the script with the beta Run script. I was running it direct from SciTE which is using 3.3.81 thanks for the quick response.
water Posted August 29, 2012 Author Posted August 29, 2012 Glad to be of service My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
bjoerni Posted August 31, 2012 Posted August 31, 2012 It is possible to retrieve a Username to a known SID?
water Posted August 31, 2012 Author Posted August 31, 2012 You could use function _Security__LookupAccountSid of the Security UDF that comes with AutoIt. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
bjoerni Posted August 31, 2012 Posted August 31, 2012 (edited) Don´t realy function with remote ad, but this: Func _AD_SID2NAME($sAD_Object) Local $sAD_Property = "objectSid" If StringMid($sAD_Object, 3, 1) = "=" Then $sAD_Property = "distinguishedName" ; FQDN provided If _AD_ObjectExists($sAD_Object, $sAD_Property) = 0 Then Return SetError(1, 0, "") $oAD_Command.CommandText = "<LDAP://" & $sAD_HostServer & "/" & $sAD_DNSDomain & ">;(" & $sAD_Property & "=" & $sAD_Object & ");ADsPath;subtree" Local $oAD_RecordSet = $oAD_Command.Execute ; Retrieve the ADsPath for the object If Not IsObj($oAD_RecordSet) Or $oAD_RecordSet.RecordCount = 0 Then Return SetError(2, 0, "") Local $sAD_LDAPEntry = $oAD_RecordSet.fields(0).value Local $oAD_Object = _AD_ObjGet($sAD_LDAPEntry) ; Retrieve the COM Object for the object $iAD_COMError = 0 Local $sAD_Result = $oAD_Object.Get("sAMAccountName") $oAD_Object.PurgePropertyList If $iAD_COMError = 3 Then $iAD_COMError = 0 Return SetError(2, 0, "") EndIf Return $sAD_Result EndFunc ;==>_AD_NAME2SID Edited August 31, 2012 by bjoerni
water Posted August 31, 2012 Author Posted August 31, 2012 This should give you the SID of the current user and then use the SID to display account information: #include <Security.au3> ; Get the SID of the current user Local $sAccount = @UserName Local $tSID = _Security__GetAccountSid($sAccount) Local $sStringSID = _Security__SidToStringSid($tSID) MsgBox(0, "SID", "User = " & $sAccount & @CRLF & "SID = " & $sStringSID) ; Lookup the name for a SID Local $aArrayOfData = _Security__LookupAccountSid($sStringSID) ; Print returned data if no error occured If IsArray($aArrayOfData) Then MsgBox(0, "SID", "Account name = " & $aArrayOfData[0] & @CRLF & _ "Domain name = " & $aArrayOfData[1] & @CRLF & _ "SID type = " & _Security__SidTypeStr($aArrayOfData[2]) & @CRLF) EndIf My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Iceman682 Posted September 1, 2012 Posted September 1, 2012 (edited) Hi GuysI'm Struggling big time with something that is probably sooooo simple to the experts on here.I am trying to edit the ADAT, I have tried all sorts of premitations to get the buttons to work but to no avail.I think the issue lies just above, but I'm probably wrong like always;------------------------------------------------------------------; Joins Win 7 Machine To Domain;------------------------------------------------------------------#include <ButtonConstants.au3> is includedAny assistance will be most gratefulThanks in advanceexpandcollapse popup;--------------------- ; Tab 1: Join computer ;--------------------- $iLine = 0 Global $hT0 = GUICtrlCreateTabItem("Credentials") GUICtrlCreateLabel("Insert The Computer Description And Join The Domain.", $iDLeft, $iDTop, $iDWidth, $iDHeight) GUICtrlSetFont(-1, 9, 800); bold $iLine += 0 GUICtrlCreateLabel("Admin User Name:", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT0_AdminUserName = GUICtrlCreateInput($sT0_AdminUserName, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) GUICtrlSetState(-1, $GUI_Focus) ; Line 2 $iLine += 1 GUICtrlCreateLabel("Admin Password:", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT0_AdminUserPassword = GUICtrlCreateInput("", $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight, $ES_PASSWORD) ; Line 3 $iLine += 1 GUICtrlCreateLabel("Computer Service Tag:", $iLLeft, $iLTop + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) Global $hT1_ComputerName = GUICtrlCreateInput(@ComputerName, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) $iLine += 1 GUICtrlCreateLabel("Domain:", $iLLeft, 73 + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) GUICtrlCreateLabel(" DO NOT CHANGE", $iLLeft, 73 + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) GUICtrlSetFont(-1, 9, 800, 2); bold GUICtrlSetColor(-1, 0xff0000) ; Red Global $hT0_DomainName = GUICtrlCreateInput($sT3_Domain, $iILeft, $iITop + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) $iLine += 1 GUICtrlCreateLabel("Computer Description:", $iLLeft, 73 + $iLine * $iLHeight + $iLine * $iLSpace, $iLWidth, $iLHeight) GUICtrlSetFont(-1, 9, 800, 2); bold GUICtrlSetColor(-1, 0xff0000) ; Red $iLine += 2 Global $hT1_Description = GUICtrlCreateInput($Description, $iILeft, 3 + $iLine * $iIHeight + $iLine * $iISpace, $iIWidth, $iIHeight) Global $Joinbuttonxp = GUICTRLCREATEBUTTON("Win XP", 150, 250 , 110, $BS_ICON) GUICtrlSetImage(-1, "C:UsersAdministratorDownloadswindows.ico") Global $Joinbutton7 = GUICTRLCREATEBUTTON("Win 7", 270, 250 , 110, $BS_ICON) GUICtrlSetImage(-1, "C:UsersAdministratorDownloadswindows_alt.ico") GUISetState(@SW_SHOWDEFAULT) #region ### END Koda GUI section ### Func OS_Select() While 1 $Msg = GUIGetMsg() Switch $Msg Case $Joinbutton7 _DomainJoin() Case $Joinbuttonxp _XPDomainJoinGUI() EndSwitch WEnd EndFunc ;------------------------------------------------------------------ ; Joins Win 7 Machine To Domain ;------------------------------------------------------------------ Func _DomainJoin() MsgBox(8196, "Windows 7 Domain Joining", "You Are About To Join A Windows 7 Machine To The Domain, Do You Wish To Continue?") ShellExecute("sysdm.cpl") WinWait("System Properties") $htDescription = GUICtrlRead ($Description) Send ($htDescription) Send("{TAB}") Send("{TAB}") Send("{ENTER}") ControlClick ("Computer Name/Domain Changes", "", "[CLASS:Button; INSTANCE:3]", "left", 1 ) WinWait("Computer Name/Domain Changes") Send("{TAB}") $htDomain = GUICtrlRead ($Domain) Send ($htDomain) Send("{TAB}") Send("{ENTER}") WinWait("Windows Security") $htAdminUserName = GUICtrlRead ($AdminUserName) Send ($htAdminUserName) Send("{TAB}") $htPassword = GUICtrlRead ($Password) Send ($htPassword) Send("{ENTER}") WinWait("Computer Name/Domain Changes", "Welcome to the domain.") WinWaitActive("Computer Name/Domain Changes", "Welcome to the domain.") Send("{ENTER}") Sleep(1000) if WinExists("Computer Name/Domain Changes", "OK") Then Send("{ENTER}") WinWait("System Properties") ControlClick ( "System Properties", "", "[CLASS:Button; INSTANCE:3]" , "left" , 1 ) Send("{TAB}") Send("{ENTER}") EndIf Msgbox(1, "Restart", "Now add Local Admins to the Administrators Group") EndFunc ;==>_DomainJoin Edited September 1, 2012 by Iceman682
water Posted September 3, 2012 Author Posted September 3, 2012 Why don't you use the join function already included in the example? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Tjalve Posted September 7, 2012 Posted September 7, 2012 hello Water. First of all, great UDF! Im having a smal issue. Ive created a script here at work that lets me update users signatures and outlook contacts (based on out AD). It works great on all machines and everything. But i just reinstalled my machine win Windows 8 PRO for testing purposes and i get an error when i try to use any of theese lines: $skype = _AD_GetObjectAttribute($AD_user,"ipPhone") $titel = _AD_GetObjectAttribute($AD_user,"title") $street = _AD_GetObjectAttribute($AD_user,"streetAddress") $postnr = _AD_GetObjectAttribute($AD_user,"postalCode") $ort = _AD_GetObjectAttribute($AD_user,"l") The error im getting is: C:\Program Files (x86)\AutoIt3\Include\AD.au3 (630) : ==> The requested action with this object has failed.: Local $sAD_Result = $oAD_Object.Get($sAD_Attribute) Local $sAD_Result = $oAD_Object.Get($sAD_Attribute)^ ERROR The strange thing is that it works in Windows 7. It might be that i ued an older version of the UDF when i compiled the script on my Win 7 machine. Another strange this is that this line works great: $displayname = _AD_GetObjectAttribute($AD_user,"displayName") $mail = _AD_GetObjectAttribute($AD_user,"mail") $tele = _AD_GetObjectAttribute($AD_user,"telephoneNumber") So some of the calls work, and some dont. Any idees?
water Posted September 7, 2012 Author Posted September 7, 2012 Which version of the UDF to you run AND which version of AutoIt do you run? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Recommended Posts