必需是操作系统的真实语言版本,而不是用户界面语言或当前区域设置。
用例:必须应用安全设置和用户帐户创建的软件安装。脚本必须知道某些系统属性,例如操作系统原始语言中的用户组名称。
(适用于Windows XP,Windows Server 2003,Vista,...)
答案 0 :(得分:3)
要检测操作系统语言,请使用GetSystemDefaultUILanguage。
但是,有更简单的方法可以在Windows中查找诸如已知组名之类的内容。例如,要获取用户组的名称,请使用WellKnownSidType = 27 (WinBuiltinUsersSid)
然后CreateWellKnownSid调用LookupAccountSid。也可以查询其他well-known users and groups的名称。
答案 1 :(得分:1)
操作系统中的所有本地化名称都具有与语言无关的方式来访问它们以供本机应用程序和设置脚本使用。管理员,用户,来宾组和管理员帐户具有众所周知的SID,可用于代替本地化名称。需要考虑的另一点是,内置主体的所有默认名称都可以更改,并且通常具有良好的含义但是混淆的系统管理员认为将域管理员帐户或组名更改为非默认值等于增加的安全性。即使是操作系统安装语言的正确名称,也不能依赖这些东西。更糟糕的是,某些语言本地化在一种语言的OS版本之间发生了变化。因此,您需要在OS版本和语言的预期名称之间构建一个非常仔细的映射。
相反不。了解如何为脚本环境构建区域设置中立ID。
答案 2 :(得分:0)
到目前为止我的最佳解决方案:枚举本地用户帐户和组,并与不同语言的已知名称列表进行比较。