water Posted July 11, 2018 Author Share Posted July 11, 2018 (edited) You could run the following script to test: expandcollapse popup#include <AD.au3> _AD_Open() _AD_ErrorNotify(1) $aResult = _AD_RecursiveGetMemberOfEX(@UserName, 10) _ArrayDisplay($aResult) _AD_Close() Exit Func _AD_RecursiveGetMemberOfEX($sObject, $iDepth = 10, $bListenherited = True, $bFQDN = True) If $iDepth = Default Then $iDepth = 10 If $bListenherited = Default Then $bListenherited = True If $bFQDN = Default Then $bFQDN = True If _AD_ObjectExists($sObject) = 0 Then Return SetError(1, 0, "") If StringMid($sObject, 3, 1) <> "=" Then $sObject = _AD_SamAccountNameToFQDN($sObject) ; sAMAccountName provided $sObject = _AD_FixSpecialChars($sObject, 1, '"\/#+<>;=') ; the object needs to be unescaped (except a comma) for the LDAP query but the result might be escaped Local $iCount1, $iCount2 Local $sField = "distinguishedName" If Not $bFQDN Then $sField = "samaccountname" ConsoleWrite("Querying: " & $sObject & @CRLF) $__oAD_Command.CommandText = "<LDAP://" & $sAD_HostServer & "/" & $sAD_DNSDomain & ">;(member=" & $sObject & ");" & $sField & ";subtree" Local $oRecordSet = $__oAD_Command.Execute Local $aGroups[$oRecordSet.RecordCount + 1] = [0] If $oRecordSet.RecordCount = 0 Then Return $aGroups $oRecordSet.MoveFirst $iCount1 = 1 Local $aTempMemberOf[1] Do $aGroups[$iCount1] = $oRecordSet.Fields(0).Value If $iDepth > 0 Then $aTempMemberOf = _AD_RecursiveGetMemberOfEX($aGroups[$iCount1], $iDepth - 1, $bListenherited, $bFQDN) If $bListenherited Then For $iCount2 = 1 To $aTempMemberOf[0] $aTempMemberOf[$iCount2] &= "|" & $aGroups[$iCount1] Next EndIf _ArrayDelete($aTempMemberOf, 0) _ArrayConcatenate($aGroups, $aTempMemberOf) EndIf $iCount1 += 1 $oRecordSet.MoveNext Until $oRecordSet.EOF $oRecordSet.Close If $bListenherited = False Then _ArraySort($aGroups, 0, 1) $aGroups = _ArrayUnique($aGroups, 0, 1) EndIf $aGroups[0] = UBound($aGroups) - 1 Return $aGroups EndFunc ;==>_AD_RecursiveGetMemberOfEX Edited July 11, 2018 by water 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 Link to comment Share on other sites More sharing options...
legend Posted September 6, 2018 Share Posted September 6, 2018 I need to remove some text from a attribute on a user object, would that be possible? Link to comment Share on other sites More sharing options...
water Posted September 6, 2018 Author Share Posted September 6, 2018 _AD_ModifyAttribute. You need to retrieve the value, change it in AutoIt and then use _AD_ModifyAttribute to set the new value. legend 1 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 Link to comment Share on other sites More sharing options...
legend Posted September 6, 2018 Share Posted September 6, 2018 3 hours ago, water said: _AD_ModifyAttribute. You need to retrieve the value, change it in AutoIt and then use _AD_ModifyAttribute to set the new value. Thank's a lot for you answer, that helped me Link to comment Share on other sites More sharing options...
Valnurat Posted September 11, 2018 Share Posted September 11, 2018 Hi Water. I'm trying to use the _AD_GetLastLoginDate. I have tried your exampel, but it does not work. When I run it nothing happens. #AutoIt3Wrapper_AU3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #AutoIt3Wrapper_AU3Check_Stop_OnWarning=Y #include <AD.au3> ; Open Connection to the Active Directory _AD_Open() If @error Then Exit MsgBox(16, "Active Directory Example Skript", "Function _AD_Open encountered a problem. @error = " & @error & ", @extended = " & @extended) ; ***************************************************************************** ; Example 1 ; Get last login date for current user. Returned as YYYYMMDDHHMMSS ; ***************************************************************************** Global $iLLDate = _AD_GetLastLoginDate() MsgBox(64, "Active Directory Functions - Example 1", "Last Login Date for User '" & @UserName & "'" & @CRLF & $iLLDate) ; ***************************************************************************** ; Example 2 ; Get last login date for current computer. Returned as YYYYMMDDHHMMSS ; ***************************************************************************** $iLLDate = _AD_GetLastLoginDate(@ComputerName & "$") MsgBox(64, "Active Directory Functions - Example 2", "Last Login Date for Computer '" & @ComputerName & "$'" & @CRLF & $iLLDate) ; Close Connection to the Active Directory _AD_Close() Do I need to do anything? Yours sincerely Kenneth. Link to comment Share on other sites More sharing options...
water Posted September 11, 2018 Author Share Posted September 11, 2018 Which version of the UDF 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 Link to comment Share on other sites More sharing options...
Valnurat Posted September 11, 2018 Share Posted September 11, 2018 (edited) Hopefully AD 1.4.7.0 EDIT: No, it is AD 1.4.6.0. I have downloaded AD 1.4.7.0, so how can I use it? Edited September 11, 2018 by Valnurat Yours sincerely Kenneth. Link to comment Share on other sites More sharing options...
water Posted September 11, 2018 Author Share Posted September 11, 2018 Should work with 1.4.6.0 as well. What is the value of @error after calling _AD_GetLastLoginDate? 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 Link to comment Share on other sites More sharing options...
Valnurat Posted September 11, 2018 Share Posted September 11, 2018 I never get an error code. It just don't do anything. Yours sincerely Kenneth. Link to comment Share on other sites More sharing options...
water Posted September 11, 2018 Author Share Posted September 11, 2018 Please try the following script and post the result: #AutoIt3Wrapper_AU3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #AutoIt3Wrapper_AU3Check_Stop_OnWarning=Y #include <AD.au3> ; Open Connection to the Active Directory _AD_Open() If @error Then Exit MsgBox(16, "Active Directory Example Skript", "Function _AD_Open encountered a problem. @error = " & @error & ", @extended = " & @extended) ; ***************************************************************************** ; Example 1 ; Get last login date for current user. Returned as YYYYMMDDHHMMSS ; ***************************************************************************** Global $iLLDate = _AD_GetLastLoginDate() If @error Then MsgBox(0, "Error", "User: @error=" & @error & ", @extended=" & @extended) MsgBox(64, "Active Directory Functions - Example 1", "Last Login Date for User '" & @UserName & "'" & @CRLF & $iLLDate) ; ***************************************************************************** ; Example 2 ; Get last login date for current computer. Returned as YYYYMMDDHHMMSS ; ***************************************************************************** $iLLDate = _AD_GetLastLoginDate(@ComputerName & "$") If @error Then MsgBox(0, "Error", "Computer: @error=" & @error & ", @extended=" & @extended) MsgBox(64, "Active Directory Functions - Example 2", "Last Login Date for Computer '" & @ComputerName & "$'" & @CRLF & $iLLDate) ; Close Connection to the Active Directory _AD_Close() 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 Link to comment Share on other sites More sharing options...
Valnurat Posted September 20, 2018 Share Posted September 20, 2018 Sorry for the late reply. I have been in London for some days. I tried the code, but nothing happens. It just stops. I can see that program is running and I can only stop it by right click on the icon in lower right corner and press exit. Yours sincerely Kenneth. Link to comment Share on other sites More sharing options...
water Posted September 20, 2018 Author Share Posted September 20, 2018 How many domain controllers do we talk about? Can you please run the _AD_ListDomainControllers.au3 example script. _AD_GetLastLoginDate queries all DCs - which might take a long time to run if some of the DCs are down. 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 Link to comment Share on other sites More sharing options...
Valnurat Posted September 20, 2018 Share Posted September 20, 2018 We have 79 Yours sincerely Kenneth. Link to comment Share on other sites More sharing options...
water Posted September 20, 2018 Author Share Posted September 20, 2018 _AD_GetlastLoginDate allows to limit the number of DCs to query and hence should run faster. Use _AD_GetSystemInfo to retrieve the site the local computer belongs to. When you specify the site you want to check for the last login date (parameter 2) does it finish? 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 Link to comment Share on other sites More sharing options...
Valnurat Posted September 20, 2018 Share Posted September 20, 2018 Yes, it is faster, but the end result is 0. Yours sincerely Kenneth. Link to comment Share on other sites More sharing options...
water Posted September 20, 2018 Author Share Posted September 20, 2018 Strange Anything special regarding your Active Directory environment - permissions etc? 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 Link to comment Share on other sites More sharing options...
water Posted September 21, 2018 Author Share Posted September 21, 2018 Could you please add _AD_ErrorNotify(2) after _AD_Open? So we get detailed error information. 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 Link to comment Share on other sites More sharing options...
Valnurat Posted September 21, 2018 Share Posted September 21, 2018 I'm not sure what I should get. But the end result is this: Yours sincerely Kenneth. Link to comment Share on other sites More sharing options...
water Posted September 21, 2018 Author Share Posted September 21, 2018 Additional error messages would have shown us if there is an incorrectly handled COM error somewhere under the covers. 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 Link to comment Share on other sites More sharing options...
Valnurat Posted September 21, 2018 Share Posted September 21, 2018 Ok. I have skipped this part with the lastlogindate, so it is not necessary for me get the info, but if you want me to test further I will be happy to help. How can I be sure that I use the latest version of AD.au3? Yours sincerely Kenneth. 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