water Posted September 27, 2013 Author Posted September 27, 2013 AutoIt can just display the line number of the statement that fails, not the line where the failing function was called. Sorry, but a default error handler can not provide more 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
kor Posted September 28, 2013 Posted September 28, 2013 (edited) Also getting lots of these errors in a script that adds/deletes/moves users. COM Error Encountered in ASABv3.au3 AD UDF version = 1.3.0 @AutoItVersion = 3.3.8.1 @AutoItX64 = 0 @Compiled = 0 @OSArch = X86 @OSVersion = WIN_7 Scriptline = 914 NumberHex = 80020009 Number = -2147352567 WinDescription = Description = The directory property cannot be found in the cache. Source = Active Directory HelpFile = HelpContext = 0 LastDllError = 0 ======================================================== I wish it would be more specific which directory property. I've identified the function causing this problem is _AD_GetUserGroups The above error seems to be generated when a user is not in any groups within AD (other than the default built in "domain users" group) @error reports 0 @extended reports 0 Edited September 28, 2013 by kor
water Posted September 28, 2013 Author Posted September 28, 2013 The "The directory property cannot be found in the cache" messages can - most of the time - be ignored. A function tries to access a property that is not available for the specified object. 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 September 28, 2013 Author Posted September 28, 2013 (edited) The function _AD_GetUserGroups returns 0 for @error and @extended because no error occurred. There was just no data to return. The COM error handler can't be more specific because there is no easy way to analyze and report the executed statement and (if called from a function) the function name. I wished AutoIt had a macro to report the name of the currently executed function. Edited September 28, 2013 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
kor Posted September 28, 2013 Posted September 28, 2013 The "The directory property cannot be found in the cache" messages can - most of the time - be ignored. A function tries to access a property that is not available for the specified object. I'd like to ignore it, but it writes to the console and thus screws up a lot of my other debugging and status messages when my scripts are running. Is there any way to get this not to write to the console? Seems like a silly error to report if a user is not part of any groups. It should handle that scenario a little more gracefully.
water Posted September 28, 2013 Author Posted September 28, 2013 It's a COM error. And the COM error handler reports all COM errors. Only possible solution: Deactivate the COM error handler before calling this function and re-enable it afterwards. 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
kor Posted September 29, 2013 Posted September 29, 2013 (edited) It's a COM error. And the COM error handler reports all COM errors. Only possible solution: Deactivate the COM error handler before calling this function and re-enable it afterwards. how? *Also, why is a COM error being generated if your function queries a user for groups that isn't in any groups. You have an amazing AD.au3 however it seems kinda strange that a COM error is generated for a VERY common scenario. Edited September 29, 2013 by kor
water Posted September 29, 2013 Author Posted September 29, 2013 Use _AD_ErrorNotify(0) to disable and _AD_ErrorNotify(1) to enable writing to the console again. 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 September 29, 2013 Author Posted September 29, 2013 *Also, why is a COM error being generated if your function queries a user for groups that isn't in any groups. You have an amazing AD.au3 however it seems kinda strange that a COM error is generated for a VERY common scenario. The COM error is generated by AutoIt, not the UDF. The AD UDF activates a COM error handler (if the user didn't do it himself before calling _AD_Open) to prevent AutoIt from crashing when a COM error occurres. 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
badapple89 Posted October 2, 2013 Posted October 2, 2013 I've made a script for creating new users in AD and then modifying the new users basic attributes like there phone number and other simple details.But when I compare a user created via this and via just making normally I noticed that: When making normally.userAccountControl512 = NORMAL_ACCOUNT and via scriptuserAccountControl544 = PASSWD_NOTREQD - NORMAL_ACCOUNT I cant seem to change it via AD directly I assume because of our password policy. I have tried the below code but obviously dosn't work for a newly created user either (does for existing);Values are actually stored in an array UAC has quotes but 512 does not, didn't appear to work with quotes. _AD_ModifyAttribute($sAD_User, "userAccountControl", 512) Sooooo I believe I need to set this attribute WHEN creating rather than modifying AFTER creating. Could you please help?
water Posted October 2, 2013 Author Posted October 2, 2013 What is the value of @error after unsuccessfully running _AD_ModifyAttribute($sAD_User, "userAccountControl", 512) 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 October 2, 2013 Author Posted October 2, 2013 (edited) Details about the UAC settings can be found here. A better description of the flag can be found here. Edited October 2, 2013 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
badapple89 Posted October 3, 2013 Posted October 3, 2013 @Error = -2147352567 WinDescription = The server is unwilling to process the request. The script is generating error as I cant change this property in AD for a user < 1day old. I guess the question is can I set the property as 512 as part of _AD_CreateUser? I gather I would modify the UDF to do this? However not sure how or what to change.
water Posted October 3, 2013 Author Posted October 3, 2013 IIRC this message pops up when you "violate" a group policy when setting a property. I checked here and all users have UAC 544. So doesn't look like a problem. 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 October 9, 2013 Posted October 9, 2013 Hi Water, Quick question hopefully. Is it possible to list all the disabled computer object in AD that isn't in the Disabled Computer Container? Many thanks
water Posted October 9, 2013 Author Posted October 9, 2013 Depending on the structure of your AD you could set parameter $sRoot of _AD_GetObjectsDisabled to define the OU where to start searching. Our you search the whole AD and drop those computers in the Disabled Computer Container from the array. 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
hartmch Posted October 10, 2013 Posted October 10, 2013 Is there an easy way to modify the treeview example to include the computers on the domain. I've been searching for a few days now and haven't figured anything out. Would I need to combine _AD_GetAllOUs with _AD_GetObjectsInOU? Thanks for any help
water Posted October 10, 2013 Author Posted October 10, 2013 That's easy Set parameter $sCategory of _AD_GetOUTreeView to "computer". 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
hartmch Posted October 11, 2013 Posted October 11, 2013 I'm still not getting any branches in my treeview. Just 1 long list. I think it might be related to spaces in the OU name. Ill look into and see what I can figure out. Thanks for your help
Recommended Posts