Chin Huang observes [L1 ] that Microsoft's Active Directory Services Interface (ADSI) [L2 ] exposes a COM interface, so it is accessible through such examples as using tcom

    # List all users in the domain named "MAIN".
    package require tcom

    set domain "MAIN"
    set collection [::tcom::ref getobject "WinNT://$domain"]
    $collection -set Filter [list "User"]
    ::tcom::foreach item $collection {
        puts [$item Name]

LV 2009-Sep-15 In the above example, is the domain value a dummy one that one would need to replace when using this in real life? When I try the code literally, I get nothing output.

Also, Franco Violi's TclLDirectory extension is said to understand ADSI.

Yet another way to consider Active Directory is as an instance of LDAP service.

More ADSI-Examples can be found at Matthias Hoffmann - Tcl-Code-Snippets (not yet complete but growing...)