Using AdFind freeware and AdMod freeware, I have scripted CountryCode.bat as a sample to set the countrycode and c attributes for a user based upon the suffix of their email address. Specifically, I was asked to make a .COM suffix set c to US and countrycode to 840, and a .CA suffix to set c to CA and countrycode to 124.

NOTE: See the ISO Code and ISO Short columns.

The syntax for running CountryCode.bat is:

CountryCode \[domain\]

where domain is optional. If not specified, domain defaults to the %USERDNSDOMAIN% variable, like JSIINC.COM.

CountryCode.bat contains:

                              @echo off                              setlocal ENABLEDELAYEDEXPANSION                              set domain=%1                              set domain=%domain:"=%                              if \{%1\}==\{\} set domain=%USERDNSDOMAIN%                              for /f "Skip=3 Tokens=1* Delims=:" %%a in ('adfind -default -noctl -f "&(objectcategory=person)(objectClass=user)" mail') do (                               set p1=%%a                               set p1=!p1:~1!                               set p2="%%b"                               set p2=!p2:" ="!                               if "!p1!" EQU "n" call :update                                if !p2! EQU "" call :update                               if "!p1!" EQU "mail" set mail=!p2!                              )                              endlocal                              goto :EOF                              :update                              if not defined dn goto :update2                              if not defined mail goto update2                              set work=!mail:*@=@!                              set work=%work:"=%                              set cc=                              for /f "Tokens=1-8 Delims=." %%i in ('@echo %work%') do (                               if not defined cc if "%%p" NEQ "" set cc=%%p                               if not defined cc if "%%o" NEQ "" set cc=%%o                               if not defined cc if "%%n" NEQ "" set cc=%%n                               if not defined cc if "%%m" NEQ "" set cc=%%m                               if not defined cc if "%%l" NEQ "" set cc=%%l                               if not defined cc if "%%k" NEQ "" set cc=%%k                               if not defined cc if "%%j" NEQ "" set cc=%%j                               if not defined cc if "%%i" NEQ "" set cc=%%i                              )                              if not defined cc goto update1                              set mail=!mail:"=!                              set cc=%cc:"=%                              if /i "%cc%" EQU "CA" set c=CA&set countrycode=124&goto update1                              if /i "%cc%" EQU "COM" set c=US&set countrycode=840&goto update1                              goto update2                              :update1                              @echo admod -b %dn% "c::!c!" "countrycode::%countrycode%"                              call :quiet>nul 2>&1                              :update2                              set dn=!p2!                              set mail=                              goto :EOF                              :quiet                              admod -b %dn% "c::!c!" "countrycode::%countrycode%"