Имя пользователя:
Пароль:
 

Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Скрипт, который отображает ближайший OU:
Код: Выделить весь код
var network     = WScript.CreateObject("WScript.Network");

function ldap_find(path, str)
{
    var result = null;

    if (path.Name.toUpperCase()!=str)
    {
        for (var items = new Enumerator(path); !items.atEnd() &&
            (result=ldap_find(items.item(), str))==null; items.moveNext()) {}
    }
    else
    {
        result = path;
    }

    return result;
}



function ldap_get_ou(root_path, obj_name)
{
    var str_residue = ldap_find(GetObject(root_path), obj_name.toUpperCase()).AdsPath;
                //.AdsPath.slice(obj_name.length + 8, -1);

    WScript.Echo(str_residue);
    var ou_pos = str_residue.indexOf(",OU=") + 4;

    return str_residue.slice(ou_pos,str_residue.indexOf(",", ou_pos));
}


WScript.Echo(ldap_get_ou("LDAP://DC=" + network.UserDomain + ",DC=ru", "CN=" + network.computerName));
можешь дальше поставить switch, который выберет нужную команду, но я бы рекомендовал сделать скрипты, с именами, совпадающими с именами OU и запускать их. А для ускорения поиска и кменьшения нагрузки на AD задавать стартовую ветку как можно дальше от корня. Например:
Код: Выделить весь код
shell.exec(ldap_get_ou("LDAP://OU=PROJECT,OU=COMPUTERS,OU=SAMNIPI,DC=SAMNIPINEFT,DC=RU",
    "CN=" + network.computerName) + ".js");
В моей конторе сделан запуск скриптов по именам групп пользователей. Список групп, в которые он входит я сделал однострочным SQL-запросом к WMI
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:07, 25-08-2009 | #5