HOWTO: Información de Active Directory desde X++

Tenía este Job por aquí desde una vez que tuve que utilizarlo para activar/desactivar usuarios automáticamente en Microsoft Dynamics AX (probado en AX 2009) cuando éstos se desactivaban en el dominio. Lo publico para que no se me pierda y por si alguien pudiera sacarle partido :).

static void JAEE_IterateActiveDirectoryUsers(Args _args)
{
    str                 computer = new xSession().clientComputerName();
    xAxaptaUserManager  mgr = new xAxaptaUserManager();
    xAxaptaUserDetails  usr;
    container           doms;
    int                 d, u;
    str                 dom, login, name, sid, email;
    ;
 
    // iterate AD domains
    doms = mgr.enumerateDomains(computer);
    for (d = 1; d <= conlen(doms); d++) 
    {
        dom = conpeek(doms, d);
        setprefix(dom);
 
        // iterate AD domain users
        usr = mgr.enumerateDomainUsers(dom);
        for (u = 0; u < usr.getUserCount(); u++) 
        {
            if (usr.isUserEnabled(u) && !usr.isUserExternal(u))
            {
				// get information from AD
                login = usr.getUserLogin(u);
                name = usr.getUserName(u);
                sid = usr.getUserSid(u);
                email = usr.getUserMail(u);
 
				// stuff happens here, you can compare AD data with AX User info
 
                info(strfmt("%1 - %2 - %3 - %4 - %5", dom, login, name, email, sid));
            }
        }
    }
}

Descarga

jaestevan
Microsoft Dynamics AX MVP. Programador y consultor técnico de soluciones Microsoft Dynamics AX y Business Intelligence. Experiencia con Dynamics AX, SQL Server y lenguajes como VB6, .NET C#, PHP, Java, etc. para desarrollos de escritorio, PDA, sitios y servicios web, interfaces de integración, etc.