<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; JS: определение админов и тем кому разрешён удалённый вход в домене]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8413&amp;type=atom" />
	<updated>2013-06-24T18:52:00Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8413</id>
		<entry>
			<title type="html"><![CDATA[Re: JS: определение админов и тем кому разрешён удалённый вход в домене]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73265#p73265" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>А на JS такого материала нету нигде?</p></blockquote></div><p><strong>im2002</strong>, собранного воедино — не встречал. На MSDN, как правило, используется VBScript — из-за возможности прямо использовать перечисление коллекций («For Each … In … Next»), возврат значений через параметры, передаваемые по ссылке и т.п.</p><p>Так что — терзайте Google с ключевым словом «JScript», наподобие: <a href="https://www.google.ru/search?q=JScript+NameTranslate">JScript NameTranslate - Поиск в Google</a>.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-06-24T18:52:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73265#p73265</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: определение админов и тем кому разрешён удалённый вход в домене]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73250#p73250" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p><strong>im2002</strong>, у Вас действительно <em>домен</em> (плоский) зовётся «server2003»?</p></blockquote></div><p>Ох, и притормозил я!!! Блин, невнимательно прочел... <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /><strong>server2003.butyrki.loca</strong>l это FQDN - имя контроллера, соответственно NETBIOS контроллера <strong>server2003</strong>. <br />NETBIOS домена butyrki, подставил всё заработало как надо.</p><p>Всё, буду пробовать &quot;переводить&quot; на JS. Ещё раз спасибо. А на JS такого материала нету нигде?</p>]]></content>
			<author>
				<name><![CDATA[im2002]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28063</uri>
			</author>
			<updated>2013-06-24T05:36:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73250#p73250</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: определение админов и тем кому разрешён удалённый вход в домене]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73249#p73249" />
			<content type="html"><![CDATA[<p><strong>im2002</strong>, у Вас действительно <em>домен</em> (плоский) зовётся «server2003»?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-06-24T04:22:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73249#p73249</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: определение админов и тем кому разрешён удалённый вход в домене]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73245#p73245" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p><a href="http://www.rlmueller.net/NameTranslateFAQ.htm">NameTranslate FAQ</a> --&gt; <a href="http://www.rlmueller.net/NameTranslateFAQ.htm#How%20do%20I%20convert%20an%20NT%20name%20to%20a%20Distinguished%20Name">How do I convert an NT name to a Distinguished Name?</a>.</p></blockquote></div><p>Бесспорно полезная ссылка, спасибо.&nbsp; Есть одно &quot;НО&quot;. Скопировал по ссылке скрипт, заменив в нём переменные strNetBIOSDomain и strNTName на &quot;свои&quot; значения. добавил код : WScript.Echo strUserDN, который, думал даст что-то вроде: cn=im2002, cn=users, dc=dutyrki, dc=local, но при выполнении:</p><div class="codebox"><pre><code>&#039; Constants for the NameTranslate object.
Const ADS_NAME_INITTYPE_GC = 3
Const ADS_NAME_TYPE_NT4 = 3
Const ADS_NAME_TYPE_1779 = 1

&#039; Specify the NetBIOS name of the domain.
strNetBIOSDomain = &quot;server2003&quot;

&#039; Specify the NT name of the user.
strNTName = &quot;im2002&quot;

&#039; Use the NameTranslate object to convert the NT user name to the
&#039; Distinguished Name required for the LDAP provider.
Set objTrans = CreateObject(&quot;NameTranslate&quot;)
&#039; Initialize NameTranslate by locating the Global Catalog.
objTrans.Init ADS_NAME_INITTYPE_GC, &quot;&quot;
&#039; Use the Set method to specify the NT format of the object name.
objTrans.Set ADS_NAME_TYPE_NT4, strNetBIOSDomain &amp; &quot;\&quot; &amp; strNTName
&#039; Use the Get method to retrieve the RFC 1779 Distinguished Name.
strUserDN = objTrans.Get(ADS_NAME_TYPE_1779)

&#039; Escape any &quot;/&quot; characters with backslash escape character.
&#039; All other characters that need to be escaped will be escaped.
strUserDN = Replace(strUserDN, &quot;/&quot;, &quot;\/&quot;)

&#039; Bind to the user object in Active Directory with the LDAP provider.
WScript.Echo strUserDN
Set objUser = GetObject(&quot;LDAP://&quot; &amp; strUserDN)</code></pre></div><p>вылазит ошибка: <strong>Преобразование имён: не удаётся найти имя или права на чтение имени недостаточны</strong><br />ошибка в строке: </p><div class="codebox"><pre><code>objTrans.Set ADS_NAME_TYPE_NT4, strNetBIOSDomain &amp; &quot;\&quot; &amp; strNTName</code></pre></div><p>не подскажите как с этим быть?</p>]]></content>
			<author>
				<name><![CDATA[im2002]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28063</uri>
			</author>
			<updated>2013-06-23T16:56:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73245#p73245</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: определение админов и тем кому разрешён удалённый вход в домене]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73243#p73243" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>при этом не представляется возможным КАК передать пользователей домена, имена которых получены через провайдера WinNT</p></blockquote></div><p><a href="http://www.rlmueller.net/NameTranslateFAQ.htm">NameTranslate FAQ</a> --&gt; <a href="http://www.rlmueller.net/NameTranslateFAQ.htm#How%20do%20I%20convert%20an%20NT%20name%20to%20a%20Distinguished%20Name">How do I convert an NT name to a Distinguished Name?</a>.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-06-23T16:10:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73243#p73243</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: определение админов и тем кому разрешён удалённый вход в домене]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73240#p73240" />
			<content type="html"><![CDATA[<p>принадлежность пользователя к интересующим группам написал, пользуясь получением объекта AD типа user, через провайдера LDAP:</p><div class="codebox"><pre><code>var str1 = &quot;dc = butyrki&quot;, str2 = &quot;dc = local&quot;;                    
                   // описание домена 
var objUser = GetObject(&quot;LDAP://cn=im2002, cn=users, &quot; + str1 + &quot;, &quot; + str2);    
               
try
    {
    var usrArr = objUser.memberOf.toArray(), lst = &quot;&quot;;            
                 // если пользователь является членом БОЛЕЕ 1-й группы (НЕ считая группу
                 // &quot;пользователи домена&quot; (основную группу))

    for(i = 0; i &lt; usrArr.length; i++)                    
        {
        var sbStr = usrArr[i].substring(3, usrArr[i].indexOf(&quot;,&quot;));
        if((sbStr == &quot;Администраторы&quot;) || (sbStr == &quot;Администраторы домена&quot;) || (sbStr == &quot;Администраторы предприятия&quot;))
            { 
            lst += sbStr + &quot;\n&quot;;
            }
        else
            {
            continue;
            }

        }
    if(lst == &quot;&quot;)
        {
        WScript.Echo(&quot;Пользователь не входит ни в одну из перечисленных групп&quot;);
        }
    else
        {
        WScript.Echo(&quot;Пользователь входит в следующие из перечисленных групп:\n--------------------------------\n&quot; + lst);
        }
    }
catch(err)
    {
    try
        {
        usrArr = objUser.memberOf;                    
                                      // если пользователь является членом ТОЛЬКО 1-й группы (НЕ считая группу
                                      // &quot;пользователи домена&quot; (основную группу))
        var sbStr = usrArr.substring(3, usrArr.indexOf(&quot;,&quot;));        
        if((sbStr == &quot;Администраторы&quot;) || (sbStr == &quot;Администраторы домена&quot;) || (sbStr == &quot;Администраторы предприятия&quot;))
            {
            WScript.Echo(&quot;Пользователь входит в группу:\n--------------------------------\n&quot; + sbStr);
            }
        else
            {
            WScript.Echo(&quot;Пользователь не входит ни в одну из перечисленных групп&quot;);    
            }
        }
    catch(err1)
        {
        WScript.Echo(&quot;пользователь является членом только одной группы&quot;);
        }
    }</code></pre></div><p>при этом не представляется возможным КАК передать пользователей домена, имена которых получены через провайдера WinNT в кусок скрипта, который для определения принадлежности к интересующей группе, использует<br />провайдера LDAP? просто как <strong>имя пользователя + домен</strong> - не проходит... &quot;контейнеров в пути&quot; я не знаю и через WinNT получить их не могу...<br />а если начинать сразу с LDAP и искать пользователей, как объекты, свойство &quot;Class&quot; у которых имеет значение &quot;User&quot;, <br />то непонятно как организовать поиск во всех контейнерах (в том числе и вложенных) в существующей AD-структуре...</p><p>можно покопать конечно в сторону получения объекта AD типа group, через провайдера WinNT, затем методом Members() получить список пользователей. таким <strong>подходом &quot;от группы&quot; </strong>можно получить пользователей, отсортировать, и наверное решить задачу... <br />но неужели невозможно решить <strong>методом &quot;от пользователя&quot;</strong> как я и начал было делать... </p><p>что делать с &quot;разрешением входящих вызовов&quot; даже не знаю как поступиться...</p>]]></content>
			<author>
				<name><![CDATA[im2002]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28063</uri>
			</author>
			<updated>2013-06-23T10:39:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73240#p73240</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[JS: определение админов и тем кому разрешён удалённый вход в домене]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73147#p73147" />
			<content type="html"><![CDATA[<p>проблема такая: есть домен (server 2003), у него 1 контроллер,&nbsp; в AD есть несколько десятков пользователей, разбросаны по разным контейнерам. мне необходимо выяснить кто из пользователей входит в группы: Администраторы, Администраторы домена, Администраторы предприятия и далее у кого на вкладке &quot;входящие звонки&quot; отмечена галочка &quot;разрешить доступ&quot;.&nbsp; руками долго, да и пропустить можно...&nbsp; список пользователей конечно я &quot;вывел&quot;, но вот с группами и разрешением на удалённый доступ как быть - ума не приложу...</p><div class="codebox"><pre><code>var str = &quot;server2003&quot;;                    
var objComputer = GetObject(&quot;WinNT://server2003, computer&quot;);    
var coll = new Enumerator(objComputer);         
var str = &quot;&quot;;
    
while(!coll.atEnd())                        
    {
    j = coll.item();                    
    if(j.Class == &quot;User&quot; || j.Class == &quot;InetOrgPerson&quot;)
        {
        str += j.Name + &quot;\n&quot;;
             }
    coll.moveNext();                    
    }
WScript.Echo(&quot;Пользователи = &quot; + &quot;\n&quot; + str);    </code></pre></div>]]></content>
			<author>
				<name><![CDATA[im2002]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28063</uri>
			</author>
			<updated>2013-06-20T12:03:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73147#p73147</id>
		</entry>
</feed>
