Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

com_error when querying with a single quote #157

Open
RagingRoosevelt opened this issue Nov 18, 2022 · 0 comments
Open

com_error when querying with a single quote #157

RagingRoosevelt opened this issue Nov 18, 2022 · 0 comments

Comments

@RagingRoosevelt
Copy link

I have a query written that works fine when I use almost any distinguishedName. But when I use one with a single quote, I get a com_error exception.

I've tried versions of the filter with both ' and '' and both throw the same error.

I've also used the search string (with the single ') in Softerra LDAP Browser and successfully run the query so I know it is well-formed.

Here's a minimal example of the code I'm running (name redacted by ■):

from pyad import adquery

q = adquery.ADQuery()

q.execute_query(base_dn = "OU=■■■■,DC=americas,DC=corpdir,DC=net",
                where_clause = (
                    R"distinguishedName=CN=■'■■■■\, ■■■■■■■ (164),"
                    "OU=Users,OU=CVD,OU=■■■■,DC=americas,DC=corpdir,DC=net"
                ),
               )

[x for x in q.get_results()]

And here's the error that it produces

---------------------------------------------------------------------------
com_error                                 Traceback (most recent call last)
H:\AppData\Local\Temp/ipykernel_3572/3834525592.py in <module>
      5 q.execute_query(base_dn = "OU=■■■■,DC=americas,DC=corpdir,DC=net",
      6                 where_clause = (
----> 7                     R"distinguishedName=CN=■'■■■■\, ■■■■■■■ (164),"+
      8                     "OU=Users,OU=CVD,OU=■■■■,DC=americas,DC=corpdir,DC=net"
      9                 ),

C:\ProgramData\Anaconda3\lib\site-packages\pyad\adquery.py in execute_query(self, attributes, where_clause, type, base_dn, page_size, search_scope, options)
     76 
     77         command.CommandText = query
---> 78         self.__rs, self.__rc = command.Execute()
     79         self.__queried = True
     80 

~\AppData\Roaming\Python\Python37\site-packages\win32com\client\dynamic.py in Execute(self, RecordsAffected, Parameters, Options)

~\AppData\Roaming\Python\Python37\site-packages\win32com\client\dynamic.py in _ApplyTypes_(self, dispid, wFlags, retType, argTypes, user, resultCLSID, *args)
    269 
    270         def _ApplyTypes_(self, dispid, wFlags, retType, argTypes, user, resultCLSID, *args):
--> 271                 result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)
    272                 return self._get_good_object_(result, user, resultCLSID)
    273 

com_error: (-2147352567, 'Exception occurred.', (0, 'Provider', 'One or more errors occurred during processing of command.', None, 1240640, -2147217900), None)

From what I can tell, I'm either not understanding how to use the library or there might be a bug?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant