<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBScript: AD Узнать логин по ФИО]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5797&amp;type=atom" />
	<updated>2011-06-02T04:17:43Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5797</id>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: AD Узнать логин по ФИО]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48889#p48889" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Rom5]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5724</uri>
			</author>
			<updated>2011-06-02T04:17:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48889#p48889</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: AD Узнать логин по ФИО]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48403#p48403" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2011-05-16T04:51:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48403#p48403</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBScript: AD Узнать логин по ФИО]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=48352#p48352" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[twi11ight]]></name>
			</author>
			<updated>2011-05-13T16:55:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=48352#p48352</id>
		</entry>
</feed>
