必需是操作系统的真实语言版本,而不是用户界面语言或当前区域设置。

用例:必须应用安全设置和用户帐户创建的软件安装。脚本必须知道某些系统属性,例如操作系统原始语言中的用户组名称。

(适用于Windows XP,Windows Server 2003,Vista,...)

有帮助吗?

解决方案

要检测操作系统语言,请使用 GetSystemDefaultUILanguage

但是,有更简单的方法可以在Windows中查找诸如已知组名之类的内容。例如,要获取 Users 组的名称,请调用 CreateWellKnownSid WellKnownSidType = 27(WinBuiltinUsersSid),然后 LookupAccountSid 。也可以查询其他知名用户和群组的名称。

其他提示

操作系统中的所有本地化名称都具有与语言无关的方式来访问它们以供本机应用程序和设置脚本使用。管理员,用户,来宾组和管理员帐户具有众所周知的SID,可用于代替本地化名称。需要考虑的另一点是,内置主体的所有默认名称都可以更改,并且通常具有良好的含义,但是系统管理员感到困惑,认为将域管理员帐户或组名更改为非默认值等于增加安全性。即使是操作系统安装语言的正确名称,也不能依赖这些东西。更糟糕的是,某些语言本地化在一种语言的OS版本之间发生了变化。因此,您需要在OS版本和语言的预期名称之间构建一个非常仔细的映射。

相反不。了解如何为脚本环境构建区域设置中立ID。

到目前为止我的最佳解决方案:枚举本地用户帐户和组,并与不同语言的已知名称列表进行比较。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top