I have a feeling Windows expects 'country' to be an integer, with 0 meaning 'US'. If that's the case, what's the mapping between integers and ISO 2-letter country codes?active
3 Answers
There are three different properties that must be set in Active Directory. Each is designated in the ISO 3166 standard. The ISO website has a search tool that you can use to find the official codes. Select Country codes and hit search, then click on Officially assigned... on the left.
c— 2 digit abbreviation (e.g. US)The country/region in the address of the user. The country/region is represented as a 2-character code based on ISO-3166.
co— Country name (e.g. United States). Microsoft got really detailed on their description for this one.The country/region in which the user is located.
countryCode— Numeric Id (e.g. 840)Specifies the country/region code for the user's language of choice. This value is not used by Windows 2000.
Note: If you want to clear the country field, then you need to set this value to
0. You cannot set it tonullorString.Empty. It will throw aDirectoryServicesCOMExceptionstating "The server is unwilling to process the request" when you callCommitChanges()if you try to set it to anything other than anint.DirectoryEntry.Properties["countryCode"].Value = 0;
- 7,779
- 5
- 58
- 84
See this link here:
Seems to be standard ISO 3166 country codes used in several places.
Same result from this post here: Active Directory and .NET
Point 5 reads:
5. Set user's country
To set the country property for a user was one of the tasks that took me some time to figure out. After some hours of research I realized that you need to know the ISO 3166 Codes for countries and set three properties to define a user's country: c, co, and countryCode.
Best overview that includes the elusive ISO 3166 numeric codes can be found on Wikipedia - of course! (at ISO itself, you can't seem to get those lists for free - you have to pay for the privilege....)
- 732,580
- 175
- 1,330
- 1,459
There's two country properties, countryCode and c, both are ISO 3166 values. The former is a number and the latter a string (ISO 3166 A2).
See ISO 3166.
Also, there's the co property which is the name of country.
- 13,872
- 15
- 57
- 93
- 53,986
- 12
- 141
- 274