私はIDとしてマップしたいので、String
ではなく、OSを特定したいと思います。このついて行くの いくつかの方法なので、私の質問は次のとおりです。IDでシステムのオペレーティングシステムを確認
誰もこれが生成するすべての可能な回答のリストを持っていますか?
var name = (from x in new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem").Get().OfType<System.Management.ManagementObject>()
select x.GetPropertyValue("Caption")).FirstOrDefault();
あるいは、他のフィールドに基づいてCaption
フィールドをルックアップ逆にする方法はありますか?
https://msdn.microsoft.com/en-us/library/windows/desktop/aa394239(v=vs.85).aspxを見ると、他のすべてのプロパティからCaption
を再作成するのに十分な情報がないようです。
ここに私のマシン上でこの結果のサンプルです:
BootDevice: \Device\HarddiskVolume1
BuildNumber: 10586
BuildType: Multiprocessor Free
Caption: Microsoft Windows 10 Pro N
CodeSet: 1252
CountryCode: 1
CreationClassName: Win32_OperatingSystem
CSCreationClassName: Win32_ComputerSystem
CSDVersion:
CSName: DESKTOP-6UJPPDS
CurrentTimeZone: 120
DataExecutionPrevention_32BitApplications: True
DataExecutionPrevention_Available: True
DataExecutionPrevention_Drivers: True
DataExecutionPrevention_SupportPolicy: 2
Debug: False
Description:
Distributed: False
EncryptionLevel: 256
ForegroundApplicationBoost: 2
FreePhysicalMemory: 2027936
FreeSpaceInPagingFiles: 4486600
FreeVirtualMemory: 2611432
InstallDate: 20151223101608.000000+120
LargeSystemCache:
LastBootUpTime: 20160215101020.112003+120
LocalDateTime: 20160225114508.446000+120
Locale: 0409
Manufacturer: Microsoft Corporation
MaxNumberOfProcesses: 4294967295
MaxProcessMemorySize: 137438953344
MUILanguages: System.String[]
Name: Microsoft Windows 10 Pro N|C:\WINDOWS|\Device\Harddisk0\Partition2
NumberOfLicensedUsers: 0
NumberOfProcesses: 157
NumberOfUsers: 2
OperatingSystemSKU: 49
Organization:
OSArchitecture: 64-bit
OSLanguage: 1033
OSProductSuite: 256
OSType: 18
OtherTypeDescription:
PAEEnabled:
PlusProductID:
PlusVersionNumber:
PortableOperatingSystem: False
Primary: True
ProductType: 1
RegisteredUser: developer
SerialNumber: 00332-00331-71784-AA054
ServicePackMajorVersion: 0
ServicePackMinorVersion: 0
SizeStoredInPagingFiles: 4637884
Status: OK
SuiteMask: 272
SystemDevice: \Device\HarddiskVolume2
SystemDirectory: C:\WINDOWS\system32
SystemDrive: C:
TotalSwapSpaceSize:
TotalVirtualMemorySize: 12910660
TotalVisibleMemorySize: 8272776
Version: 10.0.10586
WindowsDirectory: C:\WINDOWS
Googleは私が49かを見つけたようOperatingSystemSKU
は、26個の以上のアイテムを持っていることを私に告げるよう再度そのリンクは、十分に冗長ではありませんでも103
もう一つのルートはEnvironment.OSVersion
であるが、私はそれが私が探していたものよりもさらに悪いことだと思います。
だから私は、ルックアップのいくつかのフォームのためにテーブルを作成、または私は既存の内部ライブラリを検索逆のいずれか。
私の現在のソリューションは、OSのバージョンと相互参照私がhttps://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versionsから作られたリストを取得することです
更新: 代わりに私のAPIに、OS名の文字列を送信する、帯域幅の懸念のために、私はIDからOSを取得するためにルックアップを逆にすることができるユニークなIDを送信したい。
私は現在、他のすべての時間を、動的にこのデータベースを構築するOSの文字列値を使用して、その後、IDです。
Win32_OperatingSystem
のフィールドがあり、クライアントとサーバーの両方に最新のdlls/SDKがあると仮定して、Caption
フィールドを取得できるソリューションを希望します。
TIA
私はOSが実行していることを伝えるメッセージをapiに送信しようとしています。しかし、私は出力全体の文字列を送ることを避け、この名前/説明を表現するために何かを送ってから、ローカルで検索したいと思っていました。 – ericosg
そのコメントは私があなたを助けるのにはほとんど役に立ちません。あなたの質問を更新し、このapiとOSのバージョンが重要な理由について*具体的なものにしてください。 –
私は、この行動の実際の目的について、私の質問にうまく答えたと思います。誰かがリバースルックアップの解決策を持っている場合に備えて、私ができる限り、賞金を残します。 – ericosg