Using standard commands, I have scripted CN.bat to return the current user's CN.

The syntax for using CN.bat is:

\[call\] CN FullName

Where FullName is a call directed environment variable that will contain the current user's CN.

CN.bat contains:

@echo off
if \{%1\}==\{\} @echo Syntax: CN.bat FullName&goto :EOF
if exist "%TEMP%\CN.VBS" goto setCN
@echo.Dim array>"%TEMP%\CN.VBS"
@echo.On Error Resume Next>>"%TEMP%\CN.VBS"
@echo.Set objSysInfo = CreateObject("ADSystemInfo")>>"%TEMP%\CN.VBS"
@echo.Set objUser = GetObject("LDAP://" ^& objSysInfo.UserName)>>"%TEMP%\CN.VBS"
@echo.array = split(objSysInfo.UserName, ",")>>"%TEMP%\CN.VBS"
@echo.ln = Len(array(0)) - 3 >>"%TEMP%\CN.VBS"
@echo.ps = 4 >>"%TEMP%\CN.VBS"
@echo.Wscript.Echo Mid(array(0), ps, ln)>>"%TEMP%\CN.VBS"
:setCN
for /f "Tokens=*" %%n in ('cscript //nologo "%TEMP%\CN.VBS"') do (
 set %1=%%n
)