Skip navigation

JSI Tip 8118. DN2Acct.bat retrieves a sAMAccountName, or distinguishedName, by providing the full name (displayName).


Using information from tip 7714 and tip 7717, I have scripted DN2Acct.bat to return a user's sAMAccountName, or distinguishedName, by providing their displayName.

The syntax for using DN2Acct.bat is:

DN2Acct "Display Name" \[/D\]

Where "Display Name" is the displayName value, like "Jerold Schulman", and /D is an optional parameter that outputs the user's distinguishedName instead of the default sAMAccountName.

The output is displayed on the console, but you can return it in a variable using:

for /f "Tokens=*" %%u in ('DN2Acct "Display Name"') do (
 set variable=%%u
)

Examples:

To return the sAMAccountName of Jerold Schulman:

DN2Acct "Jerold Schulman"

Output:

Jerry


To return the distinguishedName of Jennifer Schulman:

DN2Acct "Jennifer Schulman" /D

Output:

CN=Jennifer Schulman,CN=Users,DC=JSIINC,DC=COM


To return the distinguishedName of all users whose last name is Schulman:

dn2acct *Schulman /d

Output:

CN=Jerold Schulman,CN=Users,DC=JSIINC,DC=COM
CN=Jennifer Schulman,CN=Users,DC=JSIINC,DC=COM


To return the sAMAccountName of all users whose given name starts with a Je:

dn2acct Je*

Output:

Jerry
Jennifer
DN2Acct.bat contains:
@echo off
if \{%1\}==\{\} @echo Syntax DN2Acct "Display Name" \[/D\]&goto :EOF
setlocal
set fn=%1
set fn=%fn:"=%
set attr=sAMAccountName
if /i "%2" EQU "/d" set attr=distinguishedName
set qry=dsquery * domainroot -filter "(&(objectCategory=Person)(objectClass=User)(displayName=%fn%))" -attr %attr% -limit 0
for /f "Skip=1 Tokens=*" %%u in ('%qry%') do (
 @echo %%u
)
endlocal



Hide comments

Comments

  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Publish