【问题标题】:How to detect the language version of Windows如何检测 Windows 的语言版本
【发布时间】:2008-10-14 17:07:17
【问题描述】:

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

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

(应适用于 Windows XP、Windows Server 2003、Vista 等)

【问题讨论】:

    标签: windows windows-xp windows-server-2003


    【解决方案1】:

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

    但是,有更直接的方法可以在 Windows 中查找已知组名等内容。例如,要获取 Users 组的名称,请先调用 CreateWellKnownSid,然后使用 WellKnownSidType = 27 (WinBuiltinUsersSid)LookupAccountSid。也可以查询其他well-known users and groups的名称。

    【讨论】:

      【解决方案2】:

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

      宁可不要。了解如何为您的脚本环境构建区域设置中性 ID。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-23
          • 1970-01-01
          • 2015-10-20
          相关资源
          最近更新 更多