Показать полную графическую версию : Помогите реализовать выполнение команд при логоне.
если сеть с не очень разветвлённым доменом (певого уровня), то можно сделать так:
1. сформировать строчку CN=%computername%,*DC=%DOMAIN%,DC=RU
2. перебрать все строчки в разделе OU=PROJECT,OU=COMPUTERS,OU=SAMNIPI,DC=SAMNIPINEFT,DC=RU; если найдётся такая, как в шаблонной строчке (регулярное выражение), то выполнить нужную команду
а ещё можно именно этим машинам в автологон засунуть всё, что надо (тогда при перерегистрации машины в домене команда всё равно будет выполняться)
pva
Приложу скрин http://slil.ru/27922595
Скрипт, который отображает ближайший 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
:yes: :yes: Спасибо за помощь.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.