• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Check if user defined in SD

M

Mad Mark

#1
Hi,

How would you check if a specific user given to you exists anywhere in the
domain please?

E.G user id is xxx123456 You want to see if that user is defined or not, if
defined get information. The user may be in a number of unknown and
different OU's.

Many thanks

Mark
 

My Computer

R

Richard Mueller [MVP]

#2
Mark wrote:

>
> How would you check if a specific user given to you exists anywhere in the
> domain please?
>
> E.G user id is xxx123456 You want to see if that user is defined or not,
> if defined get information. The user may be in a number of unknown and
> different OU's.
Assuming the user id you have is the "pre-Windows 2000 logon" name, you can
use the NameTranslate object in a VBScript program to convert this (with the
NetBIOS name of the domain) to the Distinguished Name (DN). The DN indicates
where in the hierarchy of AD the object resides. For more on NameTranslate
see this link:

http://www.rlmueller.net/NameTranslateFAQ.htm

The quick example (#6) shows how to do it. If the user does not exist an
error is raised by the Set method. If desired, you could trap this error.
For example:
=============
' Constants for the NameTranslate object.
Const ADS_NAME_INITTYPE_GC = 3
Const ADS_NAME_TYPE_NT4 = 3
Const ADS_NAME_TYPE_1779 = 1

' Specify the NetBIOS name of the domain and the NT name of the user.
strNTName = "MyDomain\TestUser"

' Use the NameTranslate object to convert the NT user name to the
' Distinguished Name required for the LDAP provider.
Set objTrans = CreateObject("NameTranslate")

' Initialize NameTranslate by locating the Global Catalog.
objTrans.Init ADS_NAME_INITTYPE_GC, ""
' Use the Set method to specify the NT format of the object name.
' Trap error if user does not exist.
On Errro Resume Next
objTrans.Set ADS_NAME_TYPE_NT4, strNTName
If (Err.Number = 0) Then
On Error GoTo 0

' Use the Get method to retrieve the RPC 1779 Distinguished Name.
strUserDN = objTrans.Get(ADS_NAME_TYPE_1779)

Wscript.Echo strUserDN
Else
On Error GoTo 0
Wscript.Echo "User " & strNTName & " does not exist"
End If

--
Richard Mueller
MVP Directory Services
Hilltop Lab - http://www.rlmueller.net
--
 

My Computer

A

Al Dunbar

#3
"Richard Mueller [MVP]" <rlmueller-nospam@xxxxxx> wrote in
message news:%231f6x9xHJHA.1308@xxxxxx

> Mark wrote:
>

>>
>> How would you check if a specific user given to you exists anywhere in
>> the domain please?
>>
>> E.G user id is xxx123456 You want to see if that user is defined or not,
>> if defined get information. The user may be in a number of unknown and
>> different OU's.
>
> Assuming the user id you have is the "pre-Windows 2000 logon" name, you
> can use the NameTranslate object in a VBScript program to convert this
> (with the NetBIOS name of the domain) to the Distinguished Name (DN). The
> DN indicates where in the hierarchy of AD the object resides. For more on
> NameTranslate see this link:
>
> http://www.rlmueller.net/NameTranslateFAQ.htm
>
> The quick example (#6) shows how to do it. If the user does not exist an
> error is raised by the Set method. If desired, you could trap this error.
> For example:
> =============
> ' Constants for the NameTranslate object.
> Const ADS_NAME_INITTYPE_GC = 3
> Const ADS_NAME_TYPE_NT4 = 3
> Const ADS_NAME_TYPE_1779 = 1
>
> ' Specify the NetBIOS name of the domain and the NT name of the user.
> strNTName = "MyDomain\TestUser"
>
> ' Use the NameTranslate object to convert the NT user name to the
> ' Distinguished Name required for the LDAP provider.
> Set objTrans = CreateObject("NameTranslate")
>
> ' Initialize NameTranslate by locating the Global Catalog.
> objTrans.Init ADS_NAME_INITTYPE_GC, ""
> ' Use the Set method to specify the NT format of the object name.
> ' Trap error if user does not exist.
> On Errro Resume Next
> objTrans.Set ADS_NAME_TYPE_NT4, strNTName
> If (Err.Number = 0) Then
> On Error GoTo 0
>
> ' Use the Get method to retrieve the RPC 1779 Distinguished Name.
> strUserDN = objTrans.Get(ADS_NAME_TYPE_1779)
>
> Wscript.Echo strUserDN
> Else
> On Error GoTo 0
> Wscript.Echo "User " & strNTName & " does not exist"
> End If
Or, alternately, you could use a simple batch script with a command such as:

net user /domain xxx123456

/Al
 

My Computer

Users Who Are Viewing This Thread (Users: 1, Guests: 0)