принадлежность пользователя к интересующим группам написал, пользуясь получением объекта AD типа user, через провайдера LDAP:
var str1 = "dc = butyrki", str2 = "dc = local";
// описание домена
var objUser = GetObject("LDAP://cn=im2002, cn=users, " + str1 + ", " + str2);
try
{
var usrArr = objUser.memberOf.toArray(), lst = "";
// если пользователь является членом БОЛЕЕ 1-й группы (НЕ считая группу
// "пользователи домена" (основную группу))
for(i = 0; i < usrArr.length; i++)
{
var sbStr = usrArr[i].substring(3, usrArr[i].indexOf(","));
if((sbStr == "Администраторы") || (sbStr == "Администраторы домена") || (sbStr == "Администраторы предприятия"))
{
lst += sbStr + "\n";
}
else
{
continue;
}
}
if(lst == "")
{
WScript.Echo("Пользователь не входит ни в одну из перечисленных групп");
}
else
{
WScript.Echo("Пользователь входит в следующие из перечисленных групп:\n--------------------------------\n" + lst);
}
}
catch(err)
{
try
{
usrArr = objUser.memberOf;
// если пользователь является членом ТОЛЬКО 1-й группы (НЕ считая группу
// "пользователи домена" (основную группу))
var sbStr = usrArr.substring(3, usrArr.indexOf(","));
if((sbStr == "Администраторы") || (sbStr == "Администраторы домена") || (sbStr == "Администраторы предприятия"))
{
WScript.Echo("Пользователь входит в группу:\n--------------------------------\n" + sbStr);
}
else
{
WScript.Echo("Пользователь не входит ни в одну из перечисленных групп");
}
}
catch(err1)
{
WScript.Echo("пользователь является членом только одной группы");
}
}
при этом не представляется возможным КАК передать пользователей домена, имена которых получены через провайдера WinNT в кусок скрипта, который для определения принадлежности к интересующей группе, использует
провайдера LDAP? просто как имя пользователя + домен - не проходит... "контейнеров в пути" я не знаю и через WinNT получить их не могу...
а если начинать сразу с LDAP и искать пользователей, как объекты, свойство "Class" у которых имеет значение "User",
то непонятно как организовать поиск во всех контейнерах (в том числе и вложенных) в существующей AD-структуре...
можно покопать конечно в сторону получения объекта AD типа group, через провайдера WinNT, затем методом Members() получить список пользователей. таким подходом "от группы" можно получить пользователей, отсортировать, и наверное решить задачу...
но неужели невозможно решить методом "от пользователя" как я и начал было делать...
что делать с "разрешением входящих вызовов" даже не знаю как поступиться...