3

必要なのはOSの実際の言語バージョンであり、ユーザーインターフェイス言語や現在のロケール設定ではありません。

ユースケース:セキュリティ設定とユーザーアカウントの作成を適用する必要があるソフトウェアのインストール。スクリプトは、OSの元の言語でのユーザーグループ名などの特定のシステムプロパティを認識している必要があります。

(Windows XP、Windows Server 2003、Vistaなどで動作するはずです...)

4

3 に答える 3

4

オペレーティング システムの言語を検出するには、GetSystemDefaultUILanguageを使用します。

ただし、Windows で既知のグループ名などを見つけるためのより簡単な方法があります。たとえば、Usersグループの名前を取得するには、 CreateWellKnownSid を呼び出しからLookupAccountSid呼び出します。他の既知のユーザーおよびグループの名前も照会される場合があります。WellKnownSidType = 27 (WinBuiltinUsersSid)

于 2008-10-15T12:55:22.863 に答える
1

OS のすべてのローカライズされた名前には、ネイティブ アプリケーションやセットアップ スクリプトで使用するために、言語に依存しない方法でアクセスできます。管理者、ユーザー、ゲスト グループ、および管理者アカウントには、ローカライズされた名前の代わりに使用できる既知の SID があります。考慮すべき追加のポイントは、組み込みのプリンシパルのすべてのデフォルト名を変更できることです。これは、ドメイン管理者のアカウントまたはグループ名をデフォルト以外に変更するとセキュリティが向上すると信じているシステム管理者を混乱させることがよくあります。OSのインストール言語の正しい名前であっても、これらのことを信頼することはできません. さらに悪いことに、言語のローカリゼーションの一部は、言語の OS リリース間で変更されます。そのため、OS のバージョンと言語の予想される名前との間のマッピングを非常に慎重に作成する必要があります。

むしろしないでください。スクリプト環境のロケール ニュートラル ID を作成する方法を確認してください。

于 2008-10-15T13:04:52.657 に答える
0

これまでの私の最善の解決策は、ローカル ユーザー アカウントとグループを列挙し、さまざまな言語で既知の名前のリストと比較することです。

于 2008-10-14T17:21:27.710 に答える