Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите реализовать выполнение команд при логоне. (http://forum.oszone.net/showthread.php?t=148265)

ufunf 18-08-2009 11:11 1196449

Помогите реализовать выполнение команд при логоне.
 
Заранее всем спасибо!

ufunf 22-08-2009 12:14 1200076

:shout:

pva 22-08-2009 22:05 1200652

если сеть с не очень разветвлённым доменом (певого уровня), то можно сделать так:
1. сформировать строчку CN=%computername%,*DC=%DOMAIN%,DC=RU
2. перебрать все строчки в разделе OU=PROJECT,OU=COMPUTERS,OU=SAMNIPI,DC=SAMNIPINEFT,DC=RU; если найдётся такая, как в шаблонной строчке (регулярное выражение), то выполнить нужную команду

а ещё можно именно этим машинам в автологон засунуть всё, что надо (тогда при перерегистрации машины в домене команда всё равно будет выполняться)

ufunf 24-08-2009 07:55 1201597

pva
Приложу скрин http://slil.ru/27922595

pva 25-08-2009 09:07 1202483

Скрипт, который отображает ближайший 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

ufunf 26-08-2009 13:08 1203668

:yes: :yes: Спасибо за помощь.


Время: 13:43.

Время: 13:43.
© OSzone.net 2001-