<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBScript: AD Узнать логин по ФИО]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=5797</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5797&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBScript: AD Узнать логин по ФИО».]]></description>
		<lastBuildDate>Thu, 02 Jun 2011 04:17:43 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBScript: AD Узнать логин по ФИО]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=48889#p48889</link>
			<description><![CDATA[<p>Кстати, спасибо за подсказку искать по &quot;displayName&quot;, а то все по привычке искал лишь по &quot;samAccountName&quot;.</p><p>А, вот, использование оператора OR по образу:<br /></p><div class="codebox"><pre><code>....(samAccountName=&#039;&quot; &amp; UserName &amp; &quot;&#039; OR displayName=&#039;&quot; &amp; UserName &amp; &quot;&#039;)&quot;</code></pre></div><p>у меня упрямо не получалось, т.к. и по точно указанному samAccountName ничего уже не выбиралось.</p><p>Решил так: дополнил форму radiobutton-ами и по их значению формировал запрос с использованием либо одного поля, либо другого. </p><p>Причем при использовании displayName, если пользователь не вводил свои подстановочные символы, то автоматически подменял в искомом выражении все пробелы на &quot;*&quot; и звездочками же его и окружал&nbsp; - гибкость и удобство значительно повысились. Спасибо за подсказанную идею)</p>]]></description>
			<author><![CDATA[null@example.com (Rom5)]]></author>
			<pubDate>Thu, 02 Jun 2011 04:17:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=48889#p48889</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBScript: AD Узнать логин по ФИО]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=48403#p48403</link>
			<description><![CDATA[<p>Вероятно, Вам нужно что-то такое:<br /></p><div class="codebox"><pre><code>
Function FindUser(Byval UserName, Byval Domain)
Set cn = CreateObject(&quot;ADODB.Connection&quot;)
cn.Open &quot;Provider=ADsDSOObject;&quot;
Set cmd = CreateObject(&quot;ADODB.Command&quot;)
Set cmd.ActiveConnection = cn
cmd.CommandText = &quot;SELECT userPrincipalName FROM &#039;LDAP://&quot; &amp; Domain &amp; _
	&quot;&#039; WHERE objectCategory=&#039;Person&#039; AND objectClass=&#039;User&#039; AND (samAccountName=&#039;&quot; &amp; UserName &amp; _
	&quot;&#039; OR displayName=&#039;&quot; &amp; UserName &amp; &quot;&#039; OR FullName=&#039;&quot; &amp; UserName &amp; &quot;&#039;)&quot;
cmd.Properties(&quot;Searchscope&quot;) = 2
Set rs = cmd.Execute
If rs.RecordCount = 1 Then
	FindUser = rs(0)
Else
	FindUser = &quot;Not Found&quot;
End if
cn.Close
End Function</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Dmitrii)]]></author>
			<pubDate>Mon, 16 May 2011 04:51:41 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=48403#p48403</guid>
		</item>
		<item>
			<title><![CDATA[VBScript: AD Узнать логин по ФИО]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=48352#p48352</link>
			<description><![CDATA[<p>Подскажите пожалуйста способ узнать логин пользователя по ФИО.<br />Пробовал dsquery, но знания слабы и получаю в ответ на запрос только эти же ФИО (samid)<br />Нашел скрипт, но он мне показывает все кроме логина&nbsp; <br /></p><div class="codebox"><pre><code>domainname=&quot;&quot;
username=inputbox(&quot;Enter username:&quot;)


if domainname = &quot;&quot; then
    set objRoot = getobject(&quot;LDAP://RootDSE&quot;)
    domainname = objRoot.get(&quot;defaultNamingContext&quot;)
end if

if username &lt;&gt; &quot;&quot; then
    wscript.echo finduser(username,domainname)
end if


Function FindUser(Byval UserName, Byval Domain) 
    on error resume next

    set cn = createobject(&quot;ADODB.Connection&quot;)
    set cmd = createobject(&quot;ADODB.Command&quot;)
    set rs = createobject(&quot;ADODB.Recordset&quot;)

    cn.open &quot;Provider=ADsDSOObject;&quot;
    
    cmd.activeconnection=cn
    cmd.commandtext=&quot;SELECT ADsPath FROM &#039;LDAP://&quot; &amp; Domain &amp; _
             &quot;&#039; WHERE Name = &#039;&quot; &amp; UserName &amp; &quot;&#039;&quot;
    
    set rs = cmd.execute

    if err&lt;&gt;0 then
        FindUser=&quot;Error connecting to Active Directory Database:&quot; &amp; err.description
    else
        if not rs.BOF and not rs.EOF then
                 rs.MoveFirst
                 FindUser = rs(0)
        else
            FindUser = &quot;Not Found&quot;
        end if
    end if
    cn.close
end function</code></pre></div><p>Со скриптом не вышло, жаль, но пока сделано:<br /></p><div class="codebox"><pre><code>@echo off
for /f &quot;tokens=*&quot; %%i in (%1) do (
 dsquery * -filter &quot;(displayname=%%i)&quot; | dsget user -display -samid -L | find /V &quot;dsget&quot;
 )</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (twi11ight)]]></author>
			<pubDate>Fri, 13 May 2011 16:55:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=48352#p48352</guid>
		</item>
	</channel>
</rss>
