Using the Active Directory command-line tools and information from How do I know what attribute names to use when performing a 'DSQUERY *'?, I have scripted SetCDName.bat to set the computer description in Active Directory equal to the logged on UserName.
The syntax for using SetCDName.bat is:
SetCDName \[NONE\]
Where NONE prevents prefixing the UserName with User=.
NOTE: Descriptions that already begin with User= are not updated, allowing you to run SetCDName.bat several times, to insure you get all descriptions updated.
NOTE: SetCDName.bat uses WhoConsole.bat and WhoConsole.vbs.
SetCDName.bat contains:
@echo off setlocal set prefix=User= if /i \{%1\}==\{NONE\} set prefix=%1 set q1=dsquery * domainroot -filter "(&(objectCategory=Computer)(objectClass=Computer))" set q2=-attr distinguishedName name description -L -Limit 0 set /a cnt=0 for /f "Tokens=1* Delims=:" %%a in ('%q1% %q2%') do ( set p1=%%a set p2=%%b call :attr ) endlocal goto :EOF :attr set /a cnt=%cnt% + 1 if /i "%p1%" EQU "name" set name=%p2:~1%&goto t3 if /i "%p1%" EQU "description" set desc=%p2:~1%&goto t3 if /i "%p1%" EQU "distinguishedName" set dn=%p2:~1% :t3 if %cnt% EQU 3 call :chkdesc goto :EOF :chkdesc set /a cnt=0 if "%desc%" EQU "" goto who if /i "%prefix%" EQU "NONE" goto who if "%desc:~0,5%" EQU "%prefix%" goto :EOF :who call WhoConsole.bat %name% user if "%user%" EQU "null" goto :EOF if /i "%prefix%" EQU "NONE" set desc=%user%&goto update set desc=%prefix%%user% :update dsmod computer "%dn%" -desc "%desc%"
2 comments
Hide comments