如何解决windows 'net user' 命令可用的有效国家代码是什么?
我有一个使用“net user”创建用户的 Windows 脚本。即使在日本操作系统上运行,我也需要确保此用户是使用美国英语国家代码创建的。文档 here 建议为此需要一个 3 位代码,但我无处可找到有效代码的示例或列表。我试过 840、409 和 1033 - 都给出错误“提供了非法的国家/地区代码”。有什么想法吗?
net user testUser testPwd123 /add /countrycode:840
解决方法
国家代码的验证实际上是通过NET USER
命令实现的。底层 NetUserSetInfo
API 将允许您设置您喜欢的任何国家/地区代码。如果您将国家/地区代码设置为 NET USER
无法识别的数字,则会将国家/地区显示为 (null)
。
NetUserSetInfo
API 具有单独的国家/地区代码和代码页字段。您可以使用 USER_INFO_1024
设置国家/地区代码,使用 USER_INFO_1025
设置代码页。但是,NET USER
命令似乎只知道国家/地区代码,无法设置或显示代码页。此外,如果我创建一个新用户并通过 SSH 连接到该用户,则该用户的代码页设置似乎与 CHCP
命令显示的代码页没有区别。
NET USER
国家/地区代码实际上源自 MS-DOS 和 OS/2。它们基于经过一些修改的国际拨号代码子集。它们最终可以追溯到 MS-DOS COUNTRY=
CONFIG.SYS
语句
我怀疑 Windows 目前对这些代码做了什么。我认为它们实际上是早期版本的 Windows 中包含的 MS-DOS 和 OS/2 客户端支持的遗留物。 NET
命令是 Windows 的一部分,它在历史上源自 IBM/Microsoft LAN Manager for MS-DOS 和 OS/2。受支持的国家/地区代码列表如此严格这一事实表明这是一个废弃的历史遗迹——如果此设置实际上被用于任何其他用途,则需要添加更广泛的受支持值。
以下是支持的值(在 Windows 10 2004 版中,但我希望更旧版本的 Windows 会产生相同的结果):
国家代码 | 国家 |
---|---|
000 | 系统默认 |
001 | 美国 |
002 | 加拿大(法语) |
003 | 拉丁美洲 |
031 | 荷兰 |
032 | 比利时 |
033 | 法国 |
034 | 西班牙 |
039 | 意大利 |
041 | 瑞士 |
044 | 英国 |
045 | 丹麦 |
046 | 瑞典 |
047 | 挪威 |
049 | 德国 |
061 | 澳大利亚 |
081 | 日本 |
082 | 韩国 |
086 | 中国(中国) |
088 | 台湾 |
099 | 亚洲 |
351 | 葡萄牙 |
358 | 芬兰 |
785 | 阿拉伯语 |
972 | 希伯来语 |
这是我用来生成上述列表的 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。