windows 'net user' 命令可用的有效国家代码是什么?

What are the valid country codes available for the windows 'net user' command?

我有一个 Windows 使用 'net user' 创建用户的脚本。我需要确保此用户是使用美式英语国家代码创建的,即使在日语 OS 上 运行 也是如此。文档 here 建议为此需要一个 3 位数的代码,但我无处可找到有效代码的示例或列表。我试过 840、409 和 1033 - 都给出错误“已提供非法 country/region 代码。”有什么想法吗?

net user testUser testPwd123 /add /countrycode:840

国家代码的验证实际上是由NET USER命令实现的。基础 NetUserSetInfo API 将允许您设置您喜欢的任何国家代码。如果您将国家代码设置为 NET USER 无法识别的数字,它会将国家显示为 (null).

NetUserSetInfo API 具有单独的国家代码和代码页字段。您可以使用 USER_INFO_1024 and the code page using USER_INFO_1025 设置国家代码。但是,NET USER 命令似乎只知道国家代码,无法设置或显示代码页。此外,如果我创建一个新用户并通过 SSH 连接到它,用户的代码页设置似乎对 CHCP 命令显示的代码页没有影响。

NET USER 国家代码实际上来自 MS-DOS 和 OS/2。它们基于经过一些修改的国际拨号代码子集。他们最终可以追溯到 MS-DOS CONFIG.SYS

中的 COUNTRY= 语句

我怀疑 Windows 目前对这些代码有任何作用。我认为它们实际上是 MS-DOS 和 OS/2 客户端支持的遗留物,这些客户端包含在 Windows 的早期版本中。 NET 命令是 Windows 的一部分,它在历史上源自 IBM/Microsoft MS-DOS 的 LAN 管理器和 OS/2。支持的国家/地区代码列表如此严格这一事实表明这是一个废弃的历史遗迹——如果此设置实际上再用于任何用途,将需要添加更广泛的支持值。

以下是支持的值(在 Windows 10 版本 2004 中,但我希望 Windows 的更旧版本会产生相同的结果):

Country Code Country
000 System Default
001 United States
002 Canada (French)
003 Latin America
031 Netherlands
032 Belgium
033 France
034 Spain
039 Italy
041 Switzerland
044 United Kingdom
045 Denmark
046 Sweden
047 Norway
049 Germany
061 Australia
081 Japan
082 Korea
086 China (PRC)
088 Taiwan
099 Asia
351 Portugal
358 Finland
785 Arabic
972 Hebrew

这是我用来生成上述列表的 Windows 批处理文件:

@echo off
setlocal enableextensions enabledelayedexpansion
rem Make sure we are using Windows commands not Cygwin/etc if you happen to have Cygwin first in PATH
PATH %systemroot%\system32
NET USER DELETEME myCmplxPwd1! /ADD 1>NUL: 2>NUL:
echo. >NETUSER.TMP
FOR /L %%i IN (0,1,999) DO (
        NET USER DELETEME /COUNTRYCODE:%%i 1>NUL: 2>NUL:
        NET USER DELETEME | findstr Country >> NETUSER.TMP
)
net user deleteme /delete 1>NUL: 2>NUL:
type netuser.tmp | sort /unique
del netuser.tmp