質問

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

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

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

役に立ちましたか?

解決

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

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

他のヒント

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

そうではありません。スクリプト環境のロケールニュートラルIDを作成する方法を確認します。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top