4

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

joeforker
  • 40,459
  • 37
  • 151
  • 246

3 Answers3

9

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 to null or String.Empty. It will throw a DirectoryServicesCOMException stating "The server is unwilling to process the request" when you call CommitChanges() if you try to set it to anything other than an int.

    DirectoryEntry.Properties["countryCode"].Value = 0;
    
Drew Chapin
  • 7,779
  • 5
  • 58
  • 84
8

See this link here:

ISO 3166 Country Codes

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....)

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
7

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.

Akhil Jain
  • 13,872
  • 15
  • 57
  • 93
Chris Haas
  • 53,986
  • 12
  • 141
  • 274