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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Windows Server 2008/2008 R2 (http://forum.oszone.net/forumdisplay.php?f=97)
-   -   [решено] objUser.memberOf не дает список групп (http://forum.oszone.net/showthread.php?t=283414)

PyroTechnic 09-06-2014 19:42 2362198

objUser.memberOf не дает список групп
 
Есть скрипт:
Код:

var WshShell = WScript.CreateObject ("WScript.Shell");
objSysInfo = WScript.CreateObject("ADSystemInfo");
WScript.Echo (objSysInfo.UserName);
objUser = GetObject('LDAP://' + objSysInfo.UserName);
WScript.Echo ("Logon script: " + objUser.scriptPath);
WScript.Echo ("User logon name: " + objUser.userPrincipalName);
arrGroup =  objUser.GetEx("memberOf");
for (i=0; i<arrGroup.length; i++)
{Wscript.Echo (arrGroup.item(i));
objGroup = GetObject('LDAP://' + arrGroup.item(i));
Wscript.Echo(objGroup.cn);
}

Wscript.Echo понатыканы для проверки. Метод objUser.GetEx("memberOf") не дает списка групп, хотя их у пользователя по три-четыре не считая Primary. Проверял через ADSIEDIT - в атрибуте memberOf значения есть и не одно. Что я не так делаю?

PyroTechnic 09-06-2014 20:43 2362225

Сам же и решил, точнее нашел решение:
http://sirlagz.net/2011/01/04/query-...ive-directory/
Правильно скрипт должен выглядеть так:
Код:

var WshShell = WScript.CreateObject ("WScript.Shell");
objSysInfo = WScript.CreateObject("ADSystemInfo");
objUser = GetObject('LDAP://' + objSysInfo.UserName);
var arrGroup =  VBArray(objUser.GetEx("memberOf")).toArray();
for (i=0; i<arrGroup.length; i++)
{objGroup = GetObject('LDAP://' + arrGroup[i]);
WScript.Echo(objGroup.cn);
}



Время: 23:52.

Время: 23:52.
© OSzone.net 2001-