§
    ÷¢±jÄ!  ã                   ó4  — d dl Z d dlmZ d dlZd dlZd dlT d ada ej        ¦   «         Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zdd
„Zd„ Zi Zej                             ¦   «         D ]\  ZZedd…         dk    reee<   Œd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zedk    r e¦   «          dS dS )é    N)ÚCallable)Ú*Ú c                  óö   — dt           z  } t          | ¦  «        }|                     d¦  «        D ]}t          | › d|› �¦  «         Œddg}|D ],}|                     |¦  «        }t          d|› d|› �¦  «         Œ-dS )	zDumps the root DSEúLDAP://%srootDSEÚSupportedLDAPVersionz supports ldap version ÚCurrentTimeÚdefaultNamingContextú ú=N)ÚserverÚADsGetObjectÚGetÚprint)ÚpathÚrootdseÚitemÚ
attributesÚattrÚvals         úgC:\Users\johnn\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32comext/adsi/demos/test.pyÚDumpRootr      s«   € à¥Ñ&€DÝ˜4Ñ Ô €Gà—’Ð2Ñ3Ô3ð 6ð 6ˆÝ�Ð4Ð4¨dÐ4Ð4Ñ5Ô5Ð5Ð5àÐ!7Ð8€JØð  ð  ˆØ�kŠk˜$ÑÔˆÝÐ�$ÐÐ˜ÐÐÑÔÐÐð ð  ó    c                 óN   — d}t          | |                     ¦   «         ¦  «         d S )NzRAbstract lDAPDisplayName schemaIDGUID schemaNamingContext attributeSyntax oMSyntax©Ú_DumpTheseAttributesÚsplit©ÚchildÚattrss     r   Ú
_DumpClassr!       s%   € Ø`€EÝ˜ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r   c                 óN   — d}t          | |                     ¦   «         ¦  «         d S )Nz•lDAPDisplayName schemaIDGUID adminDescription adminDisplayName rDNAttID defaultHidingValue defaultObjectCategory systemOnly defaultSecurityDescriptorr   r   s     r   Ú_DumpAttributer#   %   s(   € ð d€EÝ˜ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r   c           	      óÆ   — |D ]]}	 |                       |¦  «        }n# t          j        $ r
}Y d }~Œ-d }~ww xY wt          dk    rt	          d| j        › d|› d|› �¦  «         Œ^d S )Né   z<Error: ú>r   z: r   )r   Ú	pythoncomÚ	com_errorÚverbose_levelr   ÚClass)	r   r    r   r   ÚdetailsÚhrÚmsgÚexcÚargs	            r   r   r   *   s•   € Øð 3ð 3ˆð	$Ø—)’)˜D‘/”/ˆCˆCøÝÔ"ð 	$ð 	$ð 	$ØˆHˆHˆHˆHøøøøð	$øøøõ ˜AÒÐÝÐ1�e”kÐ1Ð1 TÐ1Ð1¨CÐ1Ð1Ñ2Ô2Ð2øð3ð 3s   †œ5°5c                  ó*  — dt           z  } t          | ¦  «        }|                     d¦  «        }dt           z   |z   } t          d| ¦  «         t          | ¦  «        }dx}x}x}}|D ]`}|j        }	|	dk    rt          |¦  «         |dz  }Œ$|	dk    rt          |¦  «         |dz  }Œ?|	d	k    r|dz  }ŒKt          d
|	¦  «         |dz  }Œat          rFt          d|d¦  «         t          d|d¦  «         t          d|d¦  «         t          d|d¦  «         dS dS )zDumps the default DSE schemar   ÚschemaNamingContextúLDAP://ú
Binding tor   ÚclassSchemaé   ÚattributeSchemaÚ	subSchemazUnknown class:Ú	ProcessedÚclassesr   zsub-schema'szunknown typesN)r   r   r   r   r*   r!   r#   r)   )
r   r   ÚnameÚobÚnclassesÚnattrÚnsubÚnunkr   Ú
class_names
             r   Ú
DumpSchemarA   9   sb  € ð ¥Ñ&€DÝ˜4Ñ Ô €GØ�;Š;Ð,Ñ-Ô-€Dð •vÑ Ñ$€DÝ	ˆ,˜ÑÔÐÝ	�dÑ	Ô	€BØ%&Ð&€HÐ&ˆuÐ&�t˜dð ð ð ˆà”[ˆ
Ø˜Ò&Ð&Ý�uÑÔÐØ˜‰MˆHˆHØÐ,Ò,Ð,Ý˜5Ñ!Ô!Ð!Ø�Q‰JˆEˆEØ˜;Ò&Ð&Ø�A‰IˆDˆDåÐ" JÑ/Ô/Ð/Ø�A‰IˆDˆDÝð 2Ýˆk˜8 YÑ/Ô/Ð/Ýˆk˜5 ,Ñ/Ô/Ð/Ýˆk˜4 Ñ0Ô0Ð0Ýˆk˜4 Ñ1Ô1Ð1Ð1Ð1ð	2ð 2r   c           	      óâ  — d|z  }t          |› | j        › d| j        › �¦  «         	 t          | j        t
          ¦  «        }n# t          j        $ r d }Y nw xY w|�||                     ¦   «         }t          |› d|j	        › d|j
        › d�¦  «         dg}|                     |¦  «        }|D ]+}|j        D ]!\  }}	t          |› d|j        › d|› �¦  «         Œ"Œ,| D ]}
t          |
|d	z   ¦  «         Œd S )
Nz  z	 object: z RDN='z', ObjectDN='ú'ÚdistinguishedNamez Attribute 'z' = r5   )r   r*   ÚNamer   ÚADsPathÚIID_IDirectoryObjectr'   r(   ÚGetObjectInformationÚRDNÚObjectDNÚGetObjectAttributesÚValuesÚAttrNameÚ_DumpObject)r;   ÚlevelÚprefixÚdir_obÚinfoÚnamesr    r   r   Útypr   s              r   rN   rN   \   sV  € Ø�E‰\€FÝ	ˆVÐ
1�R”XÐ
1Ð
1¨¬Ð
1Ð
1Ñ2Ô2Ð2ðÝ˜bœjÕ*>Ñ?Ô?ˆˆøÝÔð ð ð ØˆˆˆðøøøàÐØ×*Ò*Ñ,Ô,ˆÝ�ÐFÐF˜tœxÐFÐF°d´mÐFÐFÐFÑGÔGÐGà$Ð%ˆØ×*Ò*¨5Ñ1Ô1ˆØð 	Gð 	GˆDØ œKð Gð G‘��SÝ˜ÐEÐE¨T¬]ÐEÐEÀÐEÐEÑFÔFÐFÐFðGð ð &ð &ˆÝ�E˜5 1™9Ñ%Ô%Ð%Ð%ð&ð &s   §A ÁAÁAc                  óØ   — dt           z  } t          | ¦  «        }|                     d¦  «        }dt           z   |z   } t          d| ¦  «         t          | ¦  «        }t	          |¦  «         dS )z&Recursively dump the entire directory!r   r
   r2   r3   N)r   r   r   r   rN   )r   r   r:   r;   s       r   ÚDumpAllObjectsrV   r   sj   € à¥Ñ&€DÝ˜4Ñ Ô €GØ�;Š;Ð-Ñ.Ô.€Dð •vÑ Ñ$€DÝ	ˆ,˜ÑÔÐÝ	�dÑ	Ô	€Bõ ��O„O€O€O€Or   é   ÚVT_c                  ó’  — dt           › d�} t          | t          ¦  «        }dx}x}}|D �]\}|j                             ¦   «         }|dk    r¬g }|j        r|                     d¦  «         |j        r|                     d¦  «         d                     |¦  «        }ddl	}	|	j
                             |j        ¦  «        }
t          d	k    r)t          d
                     |j        ||
¦  «        ¦  «         |dz  }ŒÎ|dk    r8|j        rd}nd}t          d	k    rt          d|j        › d|› �¦  «         |dz  }�Œ|dk    rJt$                               |j        d¦  «        }t          d	k    rt          d|j        › d|› �¦  «         |dz  }�Œ^t          dk    r5t          d|d¦  «         t          d|d¦  «         t          d|d¦  «         dS dS )z/Dumps the schema using an alternative techniquer2   Úschemar   ÚclassÚAbstractÚ	Auxiliaryz, Nr%   z.Class: Name={}, Flags={}, Primary Interface={}r5   ÚpropertyzMulti-ValuedzSingle-ValuedzProperty: Name=Úsyntaxz<unknown type>zSyntax: Name=z, Datatype = r8   r9   Ú
propertieszsyntax items)r   r   ÚIID_IADsContainerr*   Úlowerr\   Úappendr]   ÚjoinÚwin32com.utilÚutilÚIIDToInterfaceNameÚPrimaryInterfacer)   r   ÚformatrE   ÚMultiValuedÚvt_mapÚgetÚOleAutoDataType)r   rZ   ÚnclassÚnpropÚnsyntaxr   Ú
item_classÚitemsÚdescÚwin32comÚiid_nameÚval_typeÚ	data_types                r   ÚDumpSchema2rx   �   s  € à#•VÐ#Ð#Ð#€DÝ˜$Õ 1Ñ2Ô2€FØ Ð €FÐ ˆU�WØð  ñ  ˆØ”Z×%Ò%Ñ'Ô'ˆ
Ø˜Ò Ð ØˆEØŒ}ð )Ø—’˜ZÑ(Ô(Ð(ØŒ~ð *Ø—’˜[Ñ)Ô)Ð)à—9’9˜UÑ#Ô#ˆDØ Ð Ð Ð à”}×7Ò7¸Ô8MÑNÔNˆHÝ Ò!Ð!ÝØD×KÒKØœ	 4¨ñô ñô ð ð
 �a‰KˆFˆFØ˜:Ò%Ð%ØÔð +Ø)��à*�Ý Ò!Ð!ÝÐ?¨¬	Ð?Ð?°XÐ?Ð?Ñ@Ô@Ð@Ø�Q‰JˆE‰EØ˜8Ò#Ð#ÝŸ
š
 4Ô#7Ð9IÑJÔJˆIÝ Ò!Ð!ÝÐI d¤iÐIÐI¸iÐIÐIÑJÔJÐJØ�q‰LˆGùÝ˜ÒÐÝˆk˜6 9Ñ-Ô-Ð-Ýˆk˜5 ,Ñ/Ô/Ð/Ýˆk˜7 NÑ3Ô3Ð3Ð3Ð3ð Ðr   c                  óz   — t          dt          ¦  «        } | D ]"}t          d|j        › d|j        › d�¦  «         Œ#dS )z(Dumps the GC: object (whatever that is!)zGC:zGC ob: ú (ú)N)r   ra   r   rE   rF   )r;   Úsub_obs     r   ÚDumpGCr}   ¹   sT   € å	�eÕ.Ñ	/Ô	/€BØð :ð :ˆÝÐ8˜œÐ8Ð8 v¤~Ð8Ð8Ð8Ñ9Ô9Ð9Ð9ð:ð :r   c                  ó¾   — dt           › d�} t          | t          ¦  «        }|                     ddg¦  «         |D ]"}t	          d|j        › d|j        › d�¦  «         Œ#dS )	zDumps the local machine usersúWinNT://ú	,computerÚUserÚGroupzUser/Group: rz   r{   N)Ú
local_namer   ra   Ú
put_Filterr   rE   rF   )r   r;   r|   s      r   ÚDumpLocalUsersr…   À   s{   € à+•jÐ+Ð+Ð+€DÝ	�dÕ-Ñ	.Ô	.€BØ‡M‚M�6˜7Ð#Ñ$Ô$Ð$Øð ?ð ?ˆÝÐ=˜Vœ[Ð=Ð=¨F¬NÐ=Ð=Ð=Ñ>Ô>Ð>Ð>ð?ð ?r   c            	      ó.  — dt           › d�} t          | t          ¦  «        }|                     dg¦  «         |D ][}t	          d|j        › d|j        › d�¦  «         |                     ¦   «         }|D ]"}t	          d|j        › d|j        › d�¦  «         Œ#Œ\dS )	zDumps the local machine groupsr   r€   r‚   zGroup: rz   r{   z  Group member: N)rƒ   r   ra   r„   r   rE   rF   ÚMembers)r   r;   r|   ÚmembersÚmembers        r   ÚDumpLocalGroupsrŠ   É   sÈ   € à+•jÐ+Ð+Ð+€DÝ	�dÕ-Ñ	.Ô	.€Bà‡M‚M�7�)ÑÔÐØð Gð GˆÝÐ8˜œÐ8Ð8 v¤~Ð8Ð8Ð8Ñ9Ô9Ð9à—.’.Ñ"Ô"ˆØð 	Gð 	GˆFÝÐE V¤[ÐEÐE°F´NÐEÐEÐEÑFÔFÐFÐFð	Gð	Gð Gr   c                 ó~  — dd l }t          d|j                             t          j        d         ¦  «        z  ¦  «         t          d¦  «         t          d¦  «         t          d¦  «         | D ]}t          |j        d|j        ¦  «         Œt          ¦   «          t          d¦  «         t	          j        d¦  «         d S )	Nr   z&Usage: %s [-s server ] [-v] [Test ...]z'  -v : Verbose - print more informationz:  -s : server - execute the tests against the named serverzwhere Test is one of:ú:z-If not tests are specified, all tests are runr5   )	Úosr   r   ÚbasenameÚsysÚargvÚ__name__Ú__doc__Úexit)Útestsr�   Úts      r   Úusager–   ×   s³   € Ø€I€I€Iå	Ð
2°R´W×5EÒ5EÅcÄhÈqÄkÑ5RÔ5RÑ
RÑSÔSÐSÝ	Ð
3Ñ4Ô4Ð4Ý	Ð
FÑGÔGÐGÝ	Ð
!Ñ"Ô"Ð"Øð *ð *ˆÝˆaŒj˜#˜qœyÑ)Ô)Ð)Ð)Ý	�G„G€GÝ	Ð
9Ñ:Ô:Ð:Ý„HˆQ�K„K€K€K€Kr   c                  ó.  — dd l } dd l}g }t          ¦   «                              ¦   «         D ]3}t	          |t
          ¦  «        r|j        r|                     |¦  «         Œ4|                       t          j	        dd …         d¦  «        \  }}|D ]A\  }}|dk    r|d         dvr|dz  }|a
|dk    rt          |¦  «         |d	k    r
t          dz  aŒBt          |¦  «        dk    rt          d
¦  «         |}n@g }|D ];}	|D ]$}
|
j        |	k    r|                     |
¦  «          nŒ%t          d|	z  ¦  «         Œ<|st          d¦  «         t          |¦  «         |D ]?}	  |¦   «          Œ#  t          d|j        z  ¦  «         |                     ¦   «          Y Œ=xY wd S )Nr   r5   zs:hvz-séÿÿÿÿz\/ú/z-hz-vz;Running all tests - use '-h' to see command-line options...zTest '%s' unknown - skippingzNothing to do!zTest %s failed)ÚgetoptÚ	tracebackÚglobalsÚvaluesÚ
isinstancer   r’   rc   r�   r�   r   r–   r)   Úlenr   r‘   Ú	print_exc)rš   r›   r”   r;   ÚoptsÚargsÚoptr   Údotestsr/   r•   Útests               r   Úmainr¦   å   s÷  € Ø€M€M€MØÐÐÐà€EÝ‰iŒi×ÒÑ Ô ð ð ˆÝ�b�(Ñ#Ô#ð 	¨¬
ð 	Ø�LŠL˜ÑÔÐøØ—’�sœx¨¨¨œ|¨VÑ4Ô4�J€Dˆ$Øð 
ð 
‰ˆˆSØ�$Š;ˆ;Ø�2Œw˜eÐ#Ð#Ø�s‘
�àˆFØ�$Š;ˆ;Ý�%‰LŒLˆLØ�$Š;ˆ;å˜QÑˆMøå
ˆ4�y„y�A‚~€~ÝÐKÑLÔLÐLØˆˆàˆØð 	<ð 	<ˆCØð <ð <�Ø”: Ò$Ð$Ø—N’N 1Ñ%Ô%Ð%Ø�Eð %õ Ð4°sÑ:Ñ;Ô;Ð;øØð ÝÐÑÔÐÝˆe‰ŒˆØð "ð "ˆð	"ØˆD‰FŒFˆFˆFøð	"ÝÐ" T¤]Ñ2Ñ3Ô3Ð3Ø×ÒÑ!Ô!Ð!Ð!Ð!øøøð"ð "s   Å
E#Å#-FÚ__main__)r   )r�   Úcollections.abcr   r'   Úwin32apiÚwin32com.adsir)   r   ÚGetComputerNamerƒ   r   r!   r#   r   rA   rN   rV   rk   Ú__dict__rr   r:   r   rx   r}   r…   rŠ   r–   r¦   r‘   © r   r   ú<module>r®      s“  ðØ 
€
€
€
Ø $Ð $Ð $Ð $Ð $Ð $à Ð Ð Ð Ø €€€Ø Ð Ð Ð à€à	€Ø%ˆXÔ%Ñ'Ô'€
ð ð  ð  ð$/ð /ð /ð
/ð /ð /ð
3ð 3ð 3ð 2ð  2ð  2ðF&ð &ð &ð &ð,ð ð ð* 
€ØÔ#×)Ò)Ñ+Ô+ð ð �I€Dˆ#ØˆBˆQˆB„x�5ÒÐØˆˆs‰øð)4ð )4ð )4ðX:ð :ð :ð?ð ?ð ?ðGð Gð Gðð ð ð)"ð )"ð )"ðX ˆzÒÐØ€D�F„F€F€F€Fð Ðr   